// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: deviceapis/device/v1/deviceapis_device_gate_v1.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>

#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION < 4023000
#error "This file was generated by a newer version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please update"
#error "your headers."
#endif  // PROTOBUF_VERSION

#if 4023001 < PROTOBUF_MIN_PROTOC_VERSION
#error "This file was generated by an older version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please"
#error "regenerate this file with a newer version of protoc."
#endif  // PROTOBUF_MIN_PROTOC_VERSION
#include "google/protobuf/port_undef.inc"
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/generated_enum_util.h"
#include "deviceapis/device/v1/deviceapis_device_common_v1.pb.h"
#include "google/api/annotations.pb.h"
#include "google/api/field_behavior.pb.h"
#include "protoc-gen-openapiv2/options/annotations.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto

PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto {
  static const ::uint32_t offsets[];
};
namespace deviceapis {
namespace device {
namespace v1 {
class GateMode;
struct GateModeDefaultTypeInternal;
extern GateModeDefaultTypeInternal _GateMode_default_instance_;
class GetGateModeRequest;
struct GetGateModeRequestDefaultTypeInternal;
extern GetGateModeRequestDefaultTypeInternal _GetGateModeRequest_default_instance_;
class GetGateModeResponse;
struct GetGateModeResponseDefaultTypeInternal;
extern GetGateModeResponseDefaultTypeInternal _GetGateModeResponse_default_instance_;
class House;
struct HouseDefaultTypeInternal;
extern HouseDefaultTypeInternal _House_default_instance_;
class House_RoomRange;
struct House_RoomRangeDefaultTypeInternal;
extern House_RoomRangeDefaultTypeInternal _House_RoomRange_default_instance_;
class SaveGateModeRequest;
struct SaveGateModeRequestDefaultTypeInternal;
extern SaveGateModeRequestDefaultTypeInternal _SaveGateModeRequest_default_instance_;
class SaveGateModeResponse;
struct SaveGateModeResponseDefaultTypeInternal;
extern SaveGateModeResponseDefaultTypeInternal _SaveGateModeResponse_default_instance_;
class SaveGateModeResponse_Error;
struct SaveGateModeResponse_ErrorDefaultTypeInternal;
extern SaveGateModeResponse_ErrorDefaultTypeInternal _SaveGateModeResponse_Error_default_instance_;
}  // namespace v1
}  // namespace device
}  // namespace deviceapis
PROTOBUF_NAMESPACE_OPEN
template <>
::deviceapis::device::v1::GateMode* Arena::CreateMaybeMessage<::deviceapis::device::v1::GateMode>(Arena*);
template <>
::deviceapis::device::v1::GetGateModeRequest* Arena::CreateMaybeMessage<::deviceapis::device::v1::GetGateModeRequest>(Arena*);
template <>
::deviceapis::device::v1::GetGateModeResponse* Arena::CreateMaybeMessage<::deviceapis::device::v1::GetGateModeResponse>(Arena*);
template <>
::deviceapis::device::v1::House* Arena::CreateMaybeMessage<::deviceapis::device::v1::House>(Arena*);
template <>
::deviceapis::device::v1::House_RoomRange* Arena::CreateMaybeMessage<::deviceapis::device::v1::House_RoomRange>(Arena*);
template <>
::deviceapis::device::v1::SaveGateModeRequest* Arena::CreateMaybeMessage<::deviceapis::device::v1::SaveGateModeRequest>(Arena*);
template <>
::deviceapis::device::v1::SaveGateModeResponse* Arena::CreateMaybeMessage<::deviceapis::device::v1::SaveGateModeResponse>(Arena*);
template <>
::deviceapis::device::v1::SaveGateModeResponse_Error* Arena::CreateMaybeMessage<::deviceapis::device::v1::SaveGateModeResponse_Error>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace deviceapis {
namespace device {
namespace v1 {
enum House_InviteTemplateType : int {
  House_InviteTemplateType_INVITE_TEMPLATE_TYPE_UNKNOWN = 0,
  House_InviteTemplateType_H4LZ_F4LZ = 1,
  House_InviteTemplateType_H4LZ_F4 = 2,
  House_InviteTemplateType_H4_F4LZ = 3,
  House_InviteTemplateType_House_InviteTemplateType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  House_InviteTemplateType_House_InviteTemplateType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool House_InviteTemplateType_IsValid(int value);
constexpr House_InviteTemplateType House_InviteTemplateType_InviteTemplateType_MIN = static_cast<House_InviteTemplateType>(0);
constexpr House_InviteTemplateType House_InviteTemplateType_InviteTemplateType_MAX = static_cast<House_InviteTemplateType>(3);
constexpr int House_InviteTemplateType_InviteTemplateType_ARRAYSIZE = 3 + 1;
const std::string& House_InviteTemplateType_Name(House_InviteTemplateType value);
template <typename T>
const std::string& House_InviteTemplateType_Name(T value) {
  static_assert(std::is_same<T, House_InviteTemplateType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to InviteTemplateType_Name().");
  return House_InviteTemplateType_Name(static_cast<House_InviteTemplateType>(value));
}
const std::string& House_InviteTemplateType_Name(House_InviteTemplateType value);
bool House_InviteTemplateType_Parse(absl::string_view name, House_InviteTemplateType* value);

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


// -------------------------------------------------------------------

class GateMode final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.GateMode) */ {
 public:
  inline GateMode() : GateMode(nullptr) {}
  ~GateMode() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GateMode(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GateMode(const GateMode& from);
  GateMode(GateMode&& from) noexcept
    : GateMode() {
    *this = ::std::move(from);
  }

  inline GateMode& operator=(const GateMode& from) {
    CopyFrom(from);
    return *this;
  }
  inline GateMode& operator=(GateMode&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GateMode& default_instance() {
    return *internal_default_instance();
  }
  static inline const GateMode* internal_default_instance() {
    return reinterpret_cast<const GateMode*>(
               &_GateMode_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(GateMode& a, GateMode& b) {
    a.Swap(&b);
  }
  inline void Swap(GateMode* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GateMode* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GateMode* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GateMode>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GateMode& from);
  void MergeFrom(const GateMode& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GateMode* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.GateMode";
  }
  protected:
  explicit GateMode(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kHousesFieldNumber = 2,
    kIsGateModeOnFieldNumber = 1,
  };
  // repeated .deviceapis.device.v1.House houses = 2 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
  int houses_size() const;
  private:
  int _internal_houses_size() const;

  public:
  void clear_houses() ;
  ::deviceapis::device::v1::House* mutable_houses(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::deviceapis::device::v1::House >*
      mutable_houses();
  private:
  const ::deviceapis::device::v1::House& _internal_houses(int index) const;
  ::deviceapis::device::v1::House* _internal_add_houses();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::deviceapis::device::v1::House>& _internal_houses() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::deviceapis::device::v1::House>* _internal_mutable_houses();
  public:
  const ::deviceapis::device::v1::House& houses(int index) const;
  ::deviceapis::device::v1::House* add_houses();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::deviceapis::device::v1::House >&
      houses() const;
  // bool is_gate_mode_on = 1 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
  void clear_is_gate_mode_on() ;
  bool is_gate_mode_on() const;
  void set_is_gate_mode_on(bool value);

  private:
  bool _internal_is_gate_mode_on() const;
  void _internal_set_is_gate_mode_on(bool value);

  public:
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.GateMode)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::deviceapis::device::v1::House > houses_;
    bool is_gate_mode_on_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetGateModeRequest final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.GetGateModeRequest) */ {
 public:
  inline GetGateModeRequest() : GetGateModeRequest(nullptr) {}
  ~GetGateModeRequest() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetGateModeRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetGateModeRequest(const GetGateModeRequest& from);
  GetGateModeRequest(GetGateModeRequest&& from) noexcept
    : GetGateModeRequest() {
    *this = ::std::move(from);
  }

  inline GetGateModeRequest& operator=(const GetGateModeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGateModeRequest& operator=(GetGateModeRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetGateModeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGateModeRequest* internal_default_instance() {
    return reinterpret_cast<const GetGateModeRequest*>(
               &_GetGateModeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(GetGateModeRequest& a, GetGateModeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGateModeRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetGateModeRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetGateModeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGateModeRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGateModeRequest& from);
  void MergeFrom(const GetGateModeRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetGateModeRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.GetGateModeRequest";
  }
  protected:
  explicit GetGateModeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.GetGateModeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetGateModeResponse final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.GetGateModeResponse) */ {
 public:
  inline GetGateModeResponse() : GetGateModeResponse(nullptr) {}
  ~GetGateModeResponse() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetGateModeResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetGateModeResponse(const GetGateModeResponse& from);
  GetGateModeResponse(GetGateModeResponse&& from) noexcept
    : GetGateModeResponse() {
    *this = ::std::move(from);
  }

  inline GetGateModeResponse& operator=(const GetGateModeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGateModeResponse& operator=(GetGateModeResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetGateModeResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGateModeResponse* internal_default_instance() {
    return reinterpret_cast<const GetGateModeResponse*>(
               &_GetGateModeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(GetGateModeResponse& a, GetGateModeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGateModeResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetGateModeResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetGateModeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGateModeResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGateModeResponse& from);
  void MergeFrom(const GetGateModeResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetGateModeResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.GetGateModeResponse";
  }
  protected:
  explicit GetGateModeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
  };
  // .deviceapis.device.v1.GateMode data = 1;
  bool has_data() const;
  private:
  bool _internal_has_data() const;

  public:
  void clear_data() ;
  const ::deviceapis::device::v1::GateMode& data() const;
  PROTOBUF_NODISCARD ::deviceapis::device::v1::GateMode* release_data();
  ::deviceapis::device::v1::GateMode* mutable_data();
  void set_allocated_data(::deviceapis::device::v1::GateMode* data);
  private:
  const ::deviceapis::device::v1::GateMode& _internal_data() const;
  ::deviceapis::device::v1::GateMode* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::deviceapis::device::v1::GateMode* data);
  ::deviceapis::device::v1::GateMode* unsafe_arena_release_data();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.GetGateModeResponse)
 private:
  class _Internal;
  void set_has_data();

  inline bool has_type() const;
  inline void clear_has_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union TypeUnion {
      constexpr TypeUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::deviceapis::device::v1::GateMode* data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class House_RoomRange final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.House.RoomRange) */ {
 public:
  inline House_RoomRange() : House_RoomRange(nullptr) {}
  ~House_RoomRange() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR House_RoomRange(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  House_RoomRange(const House_RoomRange& from);
  House_RoomRange(House_RoomRange&& from) noexcept
    : House_RoomRange() {
    *this = ::std::move(from);
  }

  inline House_RoomRange& operator=(const House_RoomRange& from) {
    CopyFrom(from);
    return *this;
  }
  inline House_RoomRange& operator=(House_RoomRange&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const House_RoomRange& default_instance() {
    return *internal_default_instance();
  }
  static inline const House_RoomRange* internal_default_instance() {
    return reinterpret_cast<const House_RoomRange*>(
               &_House_RoomRange_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(House_RoomRange& a, House_RoomRange& b) {
    a.Swap(&b);
  }
  inline void Swap(House_RoomRange* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(House_RoomRange* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  House_RoomRange* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<House_RoomRange>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const House_RoomRange& from);
  void MergeFrom(const House_RoomRange& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(House_RoomRange* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.House.RoomRange";
  }
  protected:
  explicit House_RoomRange(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFirstRoomNumberFieldNumber = 1,
    kLastRoomNumberFieldNumber = 2,
  };
  // string first_room_number = 1 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
  void clear_first_room_number() ;
  const std::string& first_room_number() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_first_room_number(Arg_&& arg, Args_... args);
  std::string* mutable_first_room_number();
  PROTOBUF_NODISCARD std::string* release_first_room_number();
  void set_allocated_first_room_number(std::string* ptr);

  private:
  const std::string& _internal_first_room_number() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_first_room_number(
      const std::string& value);
  std::string* _internal_mutable_first_room_number();

  public:
  // string last_room_number = 2 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
  void clear_last_room_number() ;
  const std::string& last_room_number() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_last_room_number(Arg_&& arg, Args_... args);
  std::string* mutable_last_room_number();
  PROTOBUF_NODISCARD std::string* release_last_room_number();
  void set_allocated_last_room_number(std::string* ptr);

  private:
  const std::string& _internal_last_room_number() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_room_number(
      const std::string& value);
  std::string* _internal_mutable_last_room_number();

  public:
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.House.RoomRange)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr first_room_number_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_room_number_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class House final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.House) */ {
 public:
  inline House() : House(nullptr) {}
  ~House() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR House(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  House(const House& from);
  House(House&& from) noexcept
    : House() {
    *this = ::std::move(from);
  }

  inline House& operator=(const House& from) {
    CopyFrom(from);
    return *this;
  }
  inline House& operator=(House&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const House& default_instance() {
    return *internal_default_instance();
  }
  static inline const House* internal_default_instance() {
    return reinterpret_cast<const House*>(
               &_House_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(House& a, House& b) {
    a.Swap(&b);
  }
  inline void Swap(House* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(House* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  House* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<House>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const House& from);
  void MergeFrom(const House& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(House* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.House";
  }
  protected:
  explicit House(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef House_RoomRange RoomRange;

  using InviteTemplateType = House_InviteTemplateType;
  static constexpr InviteTemplateType INVITE_TEMPLATE_TYPE_UNKNOWN = House_InviteTemplateType_INVITE_TEMPLATE_TYPE_UNKNOWN;
  static constexpr InviteTemplateType H4LZ_F4LZ = House_InviteTemplateType_H4LZ_F4LZ;
  static constexpr InviteTemplateType H4LZ_F4 = House_InviteTemplateType_H4LZ_F4;
  static constexpr InviteTemplateType H4_F4LZ = House_InviteTemplateType_H4_F4LZ;
  static inline bool InviteTemplateType_IsValid(int value) {
    return House_InviteTemplateType_IsValid(value);
  }
  static constexpr InviteTemplateType InviteTemplateType_MIN = House_InviteTemplateType_InviteTemplateType_MIN;
  static constexpr InviteTemplateType InviteTemplateType_MAX = House_InviteTemplateType_InviteTemplateType_MAX;
  static constexpr int InviteTemplateType_ARRAYSIZE = House_InviteTemplateType_InviteTemplateType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& InviteTemplateType_Name(T value) {
    return House_InviteTemplateType_Name(value);
  }
  static inline bool InviteTemplateType_Parse(absl::string_view name, InviteTemplateType* value) {
    return House_InviteTemplateType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kAddressFieldNumber = 1,
    kPrefixFieldNumber = 2,
    kSipServerFieldNumber = 4,
    kRoomRangeFieldNumber = 3,
    kInviteTemplateTypeFieldNumber = 5,
  };
  // string address = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_address() ;
  const std::string& address() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  std::string* mutable_address();
  PROTOBUF_NODISCARD std::string* release_address();
  void set_allocated_address(std::string* ptr);

  private:
  const std::string& _internal_address() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_address(
      const std::string& value);
  std::string* _internal_mutable_address();

  public:
  // string prefix = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_prefix() ;
  const std::string& prefix() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  std::string* mutable_prefix();
  PROTOBUF_NODISCARD std::string* release_prefix();
  void set_allocated_prefix(std::string* ptr);

  private:
  const std::string& _internal_prefix() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(
      const std::string& value);
  std::string* _internal_mutable_prefix();

  public:
  // string sip_server = 4 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
  void clear_sip_server() ;
  const std::string& sip_server() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_sip_server(Arg_&& arg, Args_... args);
  std::string* mutable_sip_server();
  PROTOBUF_NODISCARD std::string* release_sip_server();
  void set_allocated_sip_server(std::string* ptr);

  private:
  const std::string& _internal_sip_server() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_sip_server(
      const std::string& value);
  std::string* _internal_mutable_sip_server();

  public:
  // .deviceapis.device.v1.House.RoomRange room_range = 3;
  bool has_room_range() const;
  void clear_room_range() ;
  const ::deviceapis::device::v1::House_RoomRange& room_range() const;
  PROTOBUF_NODISCARD ::deviceapis::device::v1::House_RoomRange* release_room_range();
  ::deviceapis::device::v1::House_RoomRange* mutable_room_range();
  void set_allocated_room_range(::deviceapis::device::v1::House_RoomRange* room_range);
  private:
  const ::deviceapis::device::v1::House_RoomRange& _internal_room_range() const;
  ::deviceapis::device::v1::House_RoomRange* _internal_mutable_room_range();
  public:
  void unsafe_arena_set_allocated_room_range(
      ::deviceapis::device::v1::House_RoomRange* room_range);
  ::deviceapis::device::v1::House_RoomRange* unsafe_arena_release_room_range();
  // .deviceapis.device.v1.House.InviteTemplateType invite_template_type = 5 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
  void clear_invite_template_type() ;
  ::deviceapis::device::v1::House_InviteTemplateType invite_template_type() const;
  void set_invite_template_type(::deviceapis::device::v1::House_InviteTemplateType value);

  private:
  ::deviceapis::device::v1::House_InviteTemplateType _internal_invite_template_type() const;
  void _internal_set_invite_template_type(::deviceapis::device::v1::House_InviteTemplateType value);

  public:
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.House)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr address_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr prefix_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sip_server_;
    ::deviceapis::device::v1::House_RoomRange* room_range_;
    int invite_template_type_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class SaveGateModeRequest final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.SaveGateModeRequest) */ {
 public:
  inline SaveGateModeRequest() : SaveGateModeRequest(nullptr) {}
  ~SaveGateModeRequest() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR SaveGateModeRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SaveGateModeRequest(const SaveGateModeRequest& from);
  SaveGateModeRequest(SaveGateModeRequest&& from) noexcept
    : SaveGateModeRequest() {
    *this = ::std::move(from);
  }

  inline SaveGateModeRequest& operator=(const SaveGateModeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SaveGateModeRequest& operator=(SaveGateModeRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const SaveGateModeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SaveGateModeRequest* internal_default_instance() {
    return reinterpret_cast<const SaveGateModeRequest*>(
               &_SaveGateModeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(SaveGateModeRequest& a, SaveGateModeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SaveGateModeRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SaveGateModeRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SaveGateModeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SaveGateModeRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const SaveGateModeRequest& from);
  void MergeFrom(const SaveGateModeRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(SaveGateModeRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.SaveGateModeRequest";
  }
  protected:
  explicit SaveGateModeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
  };
  // .deviceapis.device.v1.GateMode data = 1 [(.google.api.field_behavior) = REQUIRED];
  bool has_data() const;
  void clear_data() ;
  const ::deviceapis::device::v1::GateMode& data() const;
  PROTOBUF_NODISCARD ::deviceapis::device::v1::GateMode* release_data();
  ::deviceapis::device::v1::GateMode* mutable_data();
  void set_allocated_data(::deviceapis::device::v1::GateMode* data);
  private:
  const ::deviceapis::device::v1::GateMode& _internal_data() const;
  ::deviceapis::device::v1::GateMode* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::deviceapis::device::v1::GateMode* data);
  ::deviceapis::device::v1::GateMode* unsafe_arena_release_data();
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.SaveGateModeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::deviceapis::device::v1::GateMode* data_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class SaveGateModeResponse_Error final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.SaveGateModeResponse.Error) */ {
 public:
  inline SaveGateModeResponse_Error() : SaveGateModeResponse_Error(nullptr) {}
  ~SaveGateModeResponse_Error() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR SaveGateModeResponse_Error(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SaveGateModeResponse_Error(const SaveGateModeResponse_Error& from);
  SaveGateModeResponse_Error(SaveGateModeResponse_Error&& from) noexcept
    : SaveGateModeResponse_Error() {
    *this = ::std::move(from);
  }

  inline SaveGateModeResponse_Error& operator=(const SaveGateModeResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline SaveGateModeResponse_Error& operator=(SaveGateModeResponse_Error&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const SaveGateModeResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    REASON_NOT_SET = 0,
  };

  static inline const SaveGateModeResponse_Error* internal_default_instance() {
    return reinterpret_cast<const SaveGateModeResponse_Error*>(
               &_SaveGateModeResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(SaveGateModeResponse_Error& a, SaveGateModeResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(SaveGateModeResponse_Error* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SaveGateModeResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SaveGateModeResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SaveGateModeResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const SaveGateModeResponse_Error& from);
  void MergeFrom(const SaveGateModeResponse_Error& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(SaveGateModeResponse_Error* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.SaveGateModeResponse.Error";
  }
  protected:
  explicit SaveGateModeResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kValidationFieldNumber = 1,
  };
  // .deviceapis.device.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::deviceapis::device::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::deviceapis::device::v1::ValidationError* release_validation();
  ::deviceapis::device::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::deviceapis::device::v1::ValidationError* validation);
  private:
  const ::deviceapis::device::v1::ValidationError& _internal_validation() const;
  ::deviceapis::device::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::deviceapis::device::v1::ValidationError* validation);
  ::deviceapis::device::v1::ValidationError* unsafe_arena_release_validation();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.SaveGateModeResponse.Error)
 private:
  class _Internal;
  void set_has_validation();

  inline bool has_reason() const;
  inline void clear_has_reason();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union ReasonUnion {
      constexpr ReasonUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::deviceapis::device::v1::ValidationError* validation_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};// -------------------------------------------------------------------

class SaveGateModeResponse final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:deviceapis.device.v1.SaveGateModeResponse) */ {
 public:
  inline SaveGateModeResponse() : SaveGateModeResponse(nullptr) {}
  ~SaveGateModeResponse() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR SaveGateModeResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SaveGateModeResponse(const SaveGateModeResponse& from);
  SaveGateModeResponse(SaveGateModeResponse&& from) noexcept
    : SaveGateModeResponse() {
    *this = ::std::move(from);
  }

  inline SaveGateModeResponse& operator=(const SaveGateModeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SaveGateModeResponse& operator=(SaveGateModeResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const SaveGateModeResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const SaveGateModeResponse* internal_default_instance() {
    return reinterpret_cast<const SaveGateModeResponse*>(
               &_SaveGateModeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(SaveGateModeResponse& a, SaveGateModeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SaveGateModeResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SaveGateModeResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SaveGateModeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SaveGateModeResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const SaveGateModeResponse& from);
  void MergeFrom(const SaveGateModeResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(SaveGateModeResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "deviceapis.device.v1.SaveGateModeResponse";
  }
  protected:
  explicit SaveGateModeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef SaveGateModeResponse_Error Error;

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
    kErrorFieldNumber = 2,
  };
  // .deviceapis.device.v1.GateMode data = 1;
  bool has_data() const;
  private:
  bool _internal_has_data() const;

  public:
  void clear_data() ;
  const ::deviceapis::device::v1::GateMode& data() const;
  PROTOBUF_NODISCARD ::deviceapis::device::v1::GateMode* release_data();
  ::deviceapis::device::v1::GateMode* mutable_data();
  void set_allocated_data(::deviceapis::device::v1::GateMode* data);
  private:
  const ::deviceapis::device::v1::GateMode& _internal_data() const;
  ::deviceapis::device::v1::GateMode* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::deviceapis::device::v1::GateMode* data);
  ::deviceapis::device::v1::GateMode* unsafe_arena_release_data();
  // .deviceapis.device.v1.SaveGateModeResponse.Error error = 2;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

  public:
  void clear_error() ;
  const ::deviceapis::device::v1::SaveGateModeResponse_Error& error() const;
  PROTOBUF_NODISCARD ::deviceapis::device::v1::SaveGateModeResponse_Error* release_error();
  ::deviceapis::device::v1::SaveGateModeResponse_Error* mutable_error();
  void set_allocated_error(::deviceapis::device::v1::SaveGateModeResponse_Error* error);
  private:
  const ::deviceapis::device::v1::SaveGateModeResponse_Error& _internal_error() const;
  ::deviceapis::device::v1::SaveGateModeResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::deviceapis::device::v1::SaveGateModeResponse_Error* error);
  ::deviceapis::device::v1::SaveGateModeResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:deviceapis.device.v1.SaveGateModeResponse)
 private:
  class _Internal;
  void set_has_data();
  void set_has_error();

  inline bool has_type() const;
  inline void clear_has_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union TypeUnion {
      constexpr TypeUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::deviceapis::device::v1::GateMode* data_;
      ::deviceapis::device::v1::SaveGateModeResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto;
};

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




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


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// GateMode

// bool is_gate_mode_on = 1 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
inline void GateMode::clear_is_gate_mode_on() {
  _impl_.is_gate_mode_on_ = false;
}
inline bool GateMode::is_gate_mode_on() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.GateMode.is_gate_mode_on)
  return _internal_is_gate_mode_on();
}
inline void GateMode::set_is_gate_mode_on(bool value) {
  _internal_set_is_gate_mode_on(value);
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.GateMode.is_gate_mode_on)
}
inline bool GateMode::_internal_is_gate_mode_on() const {
  return _impl_.is_gate_mode_on_;
}
inline void GateMode::_internal_set_is_gate_mode_on(bool value) {
  ;
  _impl_.is_gate_mode_on_ = value;
}

// repeated .deviceapis.device.v1.House houses = 2 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
inline int GateMode::_internal_houses_size() const {
  return _impl_.houses_.size();
}
inline int GateMode::houses_size() const {
  return _internal_houses_size();
}
inline void GateMode::clear_houses() {
  _internal_mutable_houses()->Clear();
}
inline ::deviceapis::device::v1::House* GateMode::mutable_houses(int index) {
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.GateMode.houses)
  return _internal_mutable_houses()->Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::deviceapis::device::v1::House >*
GateMode::mutable_houses() {
  // @@protoc_insertion_point(field_mutable_list:deviceapis.device.v1.GateMode.houses)
  return _internal_mutable_houses();
}
inline const ::deviceapis::device::v1::House& GateMode::_internal_houses(int index) const {
  return _internal_houses().Get(index);
}
inline const ::deviceapis::device::v1::House& GateMode::houses(int index) const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.GateMode.houses)
  return _internal_houses(index);
}
inline ::deviceapis::device::v1::House* GateMode::_internal_add_houses() {
  return _internal_mutable_houses()->Add();
}
inline ::deviceapis::device::v1::House* GateMode::add_houses() {
  ::deviceapis::device::v1::House* _add = _internal_add_houses();
  // @@protoc_insertion_point(field_add:deviceapis.device.v1.GateMode.houses)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::deviceapis::device::v1::House >&
GateMode::houses() const {
  // @@protoc_insertion_point(field_list:deviceapis.device.v1.GateMode.houses)
  return _internal_houses();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::deviceapis::device::v1::House>&
GateMode::_internal_houses() const {
  return _impl_.houses_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::deviceapis::device::v1::House>*
GateMode::_internal_mutable_houses() {
  return &_impl_.houses_;
}

// -------------------------------------------------------------------

// GetGateModeRequest

// -------------------------------------------------------------------

// GetGateModeResponse

// .deviceapis.device.v1.GateMode data = 1;
inline bool GetGateModeResponse::has_data() const {
  return type_case() == kData;
}
inline bool GetGateModeResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void GetGateModeResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGateModeResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::deviceapis::device::v1::GateMode* GetGateModeResponse::release_data() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.GetGateModeResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::deviceapis::device::v1::GateMode* temp = _impl_.type_.data_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::deviceapis::device::v1::GateMode& GetGateModeResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::deviceapis::device::v1::GateMode&>(::deviceapis::device::v1::_GateMode_default_instance_);
}
inline const ::deviceapis::device::v1::GateMode& GetGateModeResponse::data() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.GetGateModeResponse.data)
  return _internal_data();
}
inline ::deviceapis::device::v1::GateMode* GetGateModeResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:deviceapis.device.v1.GetGateModeResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::deviceapis::device::v1::GateMode* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGateModeResponse::unsafe_arena_set_allocated_data(::deviceapis::device::v1::GateMode* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:deviceapis.device.v1.GetGateModeResponse.data)
}
inline ::deviceapis::device::v1::GateMode* GetGateModeResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::deviceapis::device::v1::GateMode >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::deviceapis::device::v1::GateMode* GetGateModeResponse::mutable_data() {
  ::deviceapis::device::v1::GateMode* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.GetGateModeResponse.data)
  return _msg;
}

inline bool GetGateModeResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGateModeResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGateModeResponse::TypeCase GetGateModeResponse::type_case() const {
  return GetGateModeResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// House_RoomRange

// string first_room_number = 1 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
inline void House_RoomRange::clear_first_room_number() {
  _impl_.first_room_number_.ClearToEmpty();
}
inline const std::string& House_RoomRange::first_room_number() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.RoomRange.first_room_number)
  return _internal_first_room_number();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void House_RoomRange::set_first_room_number(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.first_room_number_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.House.RoomRange.first_room_number)
}
inline std::string* House_RoomRange::mutable_first_room_number() {
  std::string* _s = _internal_mutable_first_room_number();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.House.RoomRange.first_room_number)
  return _s;
}
inline const std::string& House_RoomRange::_internal_first_room_number() const {
  return _impl_.first_room_number_.Get();
}
inline void House_RoomRange::_internal_set_first_room_number(const std::string& value) {
  ;


  _impl_.first_room_number_.Set(value, GetArenaForAllocation());
}
inline std::string* House_RoomRange::_internal_mutable_first_room_number() {
  ;
  return _impl_.first_room_number_.Mutable( GetArenaForAllocation());
}
inline std::string* House_RoomRange::release_first_room_number() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.House.RoomRange.first_room_number)
  return _impl_.first_room_number_.Release();
}
inline void House_RoomRange::set_allocated_first_room_number(std::string* value) {
  _impl_.first_room_number_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.first_room_number_.IsDefault()) {
          _impl_.first_room_number_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.House.RoomRange.first_room_number)
}

// string last_room_number = 2 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
inline void House_RoomRange::clear_last_room_number() {
  _impl_.last_room_number_.ClearToEmpty();
}
inline const std::string& House_RoomRange::last_room_number() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.RoomRange.last_room_number)
  return _internal_last_room_number();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void House_RoomRange::set_last_room_number(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.last_room_number_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.House.RoomRange.last_room_number)
}
inline std::string* House_RoomRange::mutable_last_room_number() {
  std::string* _s = _internal_mutable_last_room_number();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.House.RoomRange.last_room_number)
  return _s;
}
inline const std::string& House_RoomRange::_internal_last_room_number() const {
  return _impl_.last_room_number_.Get();
}
inline void House_RoomRange::_internal_set_last_room_number(const std::string& value) {
  ;


  _impl_.last_room_number_.Set(value, GetArenaForAllocation());
}
inline std::string* House_RoomRange::_internal_mutable_last_room_number() {
  ;
  return _impl_.last_room_number_.Mutable( GetArenaForAllocation());
}
inline std::string* House_RoomRange::release_last_room_number() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.House.RoomRange.last_room_number)
  return _impl_.last_room_number_.Release();
}
inline void House_RoomRange::set_allocated_last_room_number(std::string* value) {
  _impl_.last_room_number_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.last_room_number_.IsDefault()) {
          _impl_.last_room_number_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.House.RoomRange.last_room_number)
}

// -------------------------------------------------------------------

// House

// string address = 1 [(.google.api.field_behavior) = REQUIRED];
inline void House::clear_address() {
  _impl_.address_.ClearToEmpty();
}
inline const std::string& House::address() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void House::set_address(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.House.address)
}
inline std::string* House::mutable_address() {
  std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.House.address)
  return _s;
}
inline const std::string& House::_internal_address() const {
  return _impl_.address_.Get();
}
inline void House::_internal_set_address(const std::string& value) {
  ;


  _impl_.address_.Set(value, GetArenaForAllocation());
}
inline std::string* House::_internal_mutable_address() {
  ;
  return _impl_.address_.Mutable( GetArenaForAllocation());
}
inline std::string* House::release_address() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.House.address)
  return _impl_.address_.Release();
}
inline void House::set_allocated_address(std::string* value) {
  _impl_.address_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.address_.IsDefault()) {
          _impl_.address_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.House.address)
}

// string prefix = 2 [(.google.api.field_behavior) = REQUIRED];
inline void House::clear_prefix() {
  _impl_.prefix_.ClearToEmpty();
}
inline const std::string& House::prefix() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void House::set_prefix(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.House.prefix)
}
inline std::string* House::mutable_prefix() {
  std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.House.prefix)
  return _s;
}
inline const std::string& House::_internal_prefix() const {
  return _impl_.prefix_.Get();
}
inline void House::_internal_set_prefix(const std::string& value) {
  ;


  _impl_.prefix_.Set(value, GetArenaForAllocation());
}
inline std::string* House::_internal_mutable_prefix() {
  ;
  return _impl_.prefix_.Mutable( GetArenaForAllocation());
}
inline std::string* House::release_prefix() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.House.prefix)
  return _impl_.prefix_.Release();
}
inline void House::set_allocated_prefix(std::string* value) {
  _impl_.prefix_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.prefix_.IsDefault()) {
          _impl_.prefix_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.House.prefix)
}

// .deviceapis.device.v1.House.RoomRange room_range = 3;
inline bool House::has_room_range() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.room_range_ != nullptr);
  return value;
}
inline void House::clear_room_range() {
  if (_impl_.room_range_ != nullptr) _impl_.room_range_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::deviceapis::device::v1::House_RoomRange& House::_internal_room_range() const {
  const ::deviceapis::device::v1::House_RoomRange* p = _impl_.room_range_;
  return p != nullptr ? *p : reinterpret_cast<const ::deviceapis::device::v1::House_RoomRange&>(
      ::deviceapis::device::v1::_House_RoomRange_default_instance_);
}
inline const ::deviceapis::device::v1::House_RoomRange& House::room_range() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.room_range)
  return _internal_room_range();
}
inline void House::unsafe_arena_set_allocated_room_range(
    ::deviceapis::device::v1::House_RoomRange* room_range) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.room_range_);
  }
  _impl_.room_range_ = room_range;
  if (room_range) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:deviceapis.device.v1.House.room_range)
}
inline ::deviceapis::device::v1::House_RoomRange* House::release_room_range() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::deviceapis::device::v1::House_RoomRange* temp = _impl_.room_range_;
  _impl_.room_range_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::deviceapis::device::v1::House_RoomRange* House::unsafe_arena_release_room_range() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.House.room_range)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::deviceapis::device::v1::House_RoomRange* temp = _impl_.room_range_;
  _impl_.room_range_ = nullptr;
  return temp;
}
inline ::deviceapis::device::v1::House_RoomRange* House::_internal_mutable_room_range() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.room_range_ == nullptr) {
    auto* p = CreateMaybeMessage<::deviceapis::device::v1::House_RoomRange>(GetArenaForAllocation());
    _impl_.room_range_ = p;
  }
  return _impl_.room_range_;
}
inline ::deviceapis::device::v1::House_RoomRange* House::mutable_room_range() {
  ::deviceapis::device::v1::House_RoomRange* _msg = _internal_mutable_room_range();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.House.room_range)
  return _msg;
}
inline void House::set_allocated_room_range(::deviceapis::device::v1::House_RoomRange* room_range) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.room_range_;
  }
  if (room_range) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(room_range);
    if (message_arena != submessage_arena) {
      room_range = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, room_range, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.room_range_ = room_range;
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.House.room_range)
}

// string sip_server = 4 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
inline void House::clear_sip_server() {
  _impl_.sip_server_.ClearToEmpty();
}
inline const std::string& House::sip_server() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.sip_server)
  return _internal_sip_server();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void House::set_sip_server(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.sip_server_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.House.sip_server)
}
inline std::string* House::mutable_sip_server() {
  std::string* _s = _internal_mutable_sip_server();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.House.sip_server)
  return _s;
}
inline const std::string& House::_internal_sip_server() const {
  return _impl_.sip_server_.Get();
}
inline void House::_internal_set_sip_server(const std::string& value) {
  ;


  _impl_.sip_server_.Set(value, GetArenaForAllocation());
}
inline std::string* House::_internal_mutable_sip_server() {
  ;
  return _impl_.sip_server_.Mutable( GetArenaForAllocation());
}
inline std::string* House::release_sip_server() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.House.sip_server)
  return _impl_.sip_server_.Release();
}
inline void House::set_allocated_sip_server(std::string* value) {
  _impl_.sip_server_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.sip_server_.IsDefault()) {
          _impl_.sip_server_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.House.sip_server)
}

// .deviceapis.device.v1.House.InviteTemplateType invite_template_type = 5 [(.grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
inline void House::clear_invite_template_type() {
  _impl_.invite_template_type_ = 0;
}
inline ::deviceapis::device::v1::House_InviteTemplateType House::invite_template_type() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.House.invite_template_type)
  return _internal_invite_template_type();
}
inline void House::set_invite_template_type(::deviceapis::device::v1::House_InviteTemplateType value) {
   _internal_set_invite_template_type(value);
  // @@protoc_insertion_point(field_set:deviceapis.device.v1.House.invite_template_type)
}
inline ::deviceapis::device::v1::House_InviteTemplateType House::_internal_invite_template_type() const {
  return static_cast<::deviceapis::device::v1::House_InviteTemplateType>(_impl_.invite_template_type_);
}
inline void House::_internal_set_invite_template_type(::deviceapis::device::v1::House_InviteTemplateType value) {
  ;
  _impl_.invite_template_type_ = value;
}

// -------------------------------------------------------------------

// SaveGateModeRequest

// .deviceapis.device.v1.GateMode data = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool SaveGateModeRequest::has_data() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.data_ != nullptr);
  return value;
}
inline void SaveGateModeRequest::clear_data() {
  if (_impl_.data_ != nullptr) _impl_.data_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::deviceapis::device::v1::GateMode& SaveGateModeRequest::_internal_data() const {
  const ::deviceapis::device::v1::GateMode* p = _impl_.data_;
  return p != nullptr ? *p : reinterpret_cast<const ::deviceapis::device::v1::GateMode&>(
      ::deviceapis::device::v1::_GateMode_default_instance_);
}
inline const ::deviceapis::device::v1::GateMode& SaveGateModeRequest::data() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.SaveGateModeRequest.data)
  return _internal_data();
}
inline void SaveGateModeRequest::unsafe_arena_set_allocated_data(
    ::deviceapis::device::v1::GateMode* data) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.data_);
  }
  _impl_.data_ = data;
  if (data) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:deviceapis.device.v1.SaveGateModeRequest.data)
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeRequest::release_data() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::deviceapis::device::v1::GateMode* temp = _impl_.data_;
  _impl_.data_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeRequest::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.SaveGateModeRequest.data)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::deviceapis::device::v1::GateMode* temp = _impl_.data_;
  _impl_.data_ = nullptr;
  return temp;
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeRequest::_internal_mutable_data() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.data_ == nullptr) {
    auto* p = CreateMaybeMessage<::deviceapis::device::v1::GateMode>(GetArenaForAllocation());
    _impl_.data_ = p;
  }
  return _impl_.data_;
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeRequest::mutable_data() {
  ::deviceapis::device::v1::GateMode* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.SaveGateModeRequest.data)
  return _msg;
}
inline void SaveGateModeRequest::set_allocated_data(::deviceapis::device::v1::GateMode* data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.data_;
  }
  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);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.data_ = data;
  // @@protoc_insertion_point(field_set_allocated:deviceapis.device.v1.SaveGateModeRequest.data)
}

// -------------------------------------------------------------------

// SaveGateModeResponse_Error

// .deviceapis.device.v1.ValidationError validation = 1;
inline bool SaveGateModeResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool SaveGateModeResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void SaveGateModeResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline ::deviceapis::device::v1::ValidationError* SaveGateModeResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.SaveGateModeResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::deviceapis::device::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::deviceapis::device::v1::ValidationError& SaveGateModeResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::deviceapis::device::v1::ValidationError&>(::deviceapis::device::v1::_ValidationError_default_instance_);
}
inline const ::deviceapis::device::v1::ValidationError& SaveGateModeResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.SaveGateModeResponse.Error.validation)
  return _internal_validation();
}
inline ::deviceapis::device::v1::ValidationError* SaveGateModeResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:deviceapis.device.v1.SaveGateModeResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::deviceapis::device::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void SaveGateModeResponse_Error::unsafe_arena_set_allocated_validation(::deviceapis::device::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:deviceapis.device.v1.SaveGateModeResponse.Error.validation)
}
inline ::deviceapis::device::v1::ValidationError* SaveGateModeResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::deviceapis::device::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::deviceapis::device::v1::ValidationError* SaveGateModeResponse_Error::mutable_validation() {
  ::deviceapis::device::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.SaveGateModeResponse.Error.validation)
  return _msg;
}

inline bool SaveGateModeResponse_Error::has_reason() const {
  return reason_case() != REASON_NOT_SET;
}
inline void SaveGateModeResponse_Error::clear_has_reason() {
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}
inline SaveGateModeResponse_Error::ReasonCase SaveGateModeResponse_Error::reason_case() const {
  return SaveGateModeResponse_Error::ReasonCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// SaveGateModeResponse

// .deviceapis.device.v1.GateMode data = 1;
inline bool SaveGateModeResponse::has_data() const {
  return type_case() == kData;
}
inline bool SaveGateModeResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void SaveGateModeResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void SaveGateModeResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeResponse::release_data() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.SaveGateModeResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::deviceapis::device::v1::GateMode* temp = _impl_.type_.data_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::deviceapis::device::v1::GateMode& SaveGateModeResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::deviceapis::device::v1::GateMode&>(::deviceapis::device::v1::_GateMode_default_instance_);
}
inline const ::deviceapis::device::v1::GateMode& SaveGateModeResponse::data() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.SaveGateModeResponse.data)
  return _internal_data();
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:deviceapis.device.v1.SaveGateModeResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::deviceapis::device::v1::GateMode* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void SaveGateModeResponse::unsafe_arena_set_allocated_data(::deviceapis::device::v1::GateMode* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:deviceapis.device.v1.SaveGateModeResponse.data)
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::deviceapis::device::v1::GateMode >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::deviceapis::device::v1::GateMode* SaveGateModeResponse::mutable_data() {
  ::deviceapis::device::v1::GateMode* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.SaveGateModeResponse.data)
  return _msg;
}

// .deviceapis.device.v1.SaveGateModeResponse.Error error = 2;
inline bool SaveGateModeResponse::has_error() const {
  return type_case() == kError;
}
inline bool SaveGateModeResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void SaveGateModeResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void SaveGateModeResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::deviceapis::device::v1::SaveGateModeResponse_Error* SaveGateModeResponse::release_error() {
  // @@protoc_insertion_point(field_release:deviceapis.device.v1.SaveGateModeResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::deviceapis::device::v1::SaveGateModeResponse_Error* temp = _impl_.type_.error_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::deviceapis::device::v1::SaveGateModeResponse_Error& SaveGateModeResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::deviceapis::device::v1::SaveGateModeResponse_Error&>(::deviceapis::device::v1::_SaveGateModeResponse_Error_default_instance_);
}
inline const ::deviceapis::device::v1::SaveGateModeResponse_Error& SaveGateModeResponse::error() const {
  // @@protoc_insertion_point(field_get:deviceapis.device.v1.SaveGateModeResponse.error)
  return _internal_error();
}
inline ::deviceapis::device::v1::SaveGateModeResponse_Error* SaveGateModeResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:deviceapis.device.v1.SaveGateModeResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::deviceapis::device::v1::SaveGateModeResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void SaveGateModeResponse::unsafe_arena_set_allocated_error(::deviceapis::device::v1::SaveGateModeResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:deviceapis.device.v1.SaveGateModeResponse.error)
}
inline ::deviceapis::device::v1::SaveGateModeResponse_Error* SaveGateModeResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::deviceapis::device::v1::SaveGateModeResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::deviceapis::device::v1::SaveGateModeResponse_Error* SaveGateModeResponse::mutable_error() {
  ::deviceapis::device::v1::SaveGateModeResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:deviceapis.device.v1.SaveGateModeResponse.error)
  return _msg;
}

inline bool SaveGateModeResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void SaveGateModeResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline SaveGateModeResponse::TypeCase SaveGateModeResponse::type_case() const {
  return SaveGateModeResponse::TypeCase(_impl_._oneof_case_[0]);
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace device
}  // namespace deviceapis


PROTOBUF_NAMESPACE_OPEN

template <>
struct is_proto_enum<::deviceapis::device::v1::House_InviteTemplateType> : std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_deviceapis_2fdevice_2fv1_2fdeviceapis_5fdevice_5fgate_5fv1_2eproto_2epb_2eh
