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

#ifndef GOOGLE_PROTOBUF_INCLUDED_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_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/map.h"  // IWYU pragma: export
#include "google/protobuf/map_entry_lite.h"
#include "google/protobuf/map_field_lite.h"
#include "google/protobuf/generated_enum_util.h"
#include "google/api/annotations.pb.h"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto

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

// Internal implementation detail -- do not use these members.
struct TableStruct_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto {
  static const ::uint32_t offsets[];
};
namespace keyapis {
namespace iot_connect {
namespace sber {
namespace v1 {
class DeviceCommand;
struct DeviceCommandDefaultTypeInternal;
extern DeviceCommandDefaultTypeInternal _DeviceCommand_default_instance_;
class DeviceCommandArray;
struct DeviceCommandArrayDefaultTypeInternal;
extern DeviceCommandArrayDefaultTypeInternal _DeviceCommandArray_default_instance_;
class DeviceCommand_Value;
struct DeviceCommand_ValueDefaultTypeInternal;
extern DeviceCommand_ValueDefaultTypeInternal _DeviceCommand_Value_default_instance_;
class PostV1CommandRequest;
struct PostV1CommandRequestDefaultTypeInternal;
extern PostV1CommandRequestDefaultTypeInternal _PostV1CommandRequest_default_instance_;
class PostV1CommandRequest_DevicesEntry_DoNotUse;
struct PostV1CommandRequest_DevicesEntry_DoNotUseDefaultTypeInternal;
extern PostV1CommandRequest_DevicesEntry_DoNotUseDefaultTypeInternal _PostV1CommandRequest_DevicesEntry_DoNotUse_default_instance_;
class PostV1CommandResponse;
struct PostV1CommandResponseDefaultTypeInternal;
extern PostV1CommandResponseDefaultTypeInternal _PostV1CommandResponse_default_instance_;
}  // namespace v1
}  // namespace sber
}  // namespace iot_connect
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template <>
::keyapis::iot_connect::sber::v1::DeviceCommand* Arena::CreateMaybeMessage<::keyapis::iot_connect::sber::v1::DeviceCommand>(Arena*);
template <>
::keyapis::iot_connect::sber::v1::DeviceCommandArray* Arena::CreateMaybeMessage<::keyapis::iot_connect::sber::v1::DeviceCommandArray>(Arena*);
template <>
::keyapis::iot_connect::sber::v1::DeviceCommand_Value* Arena::CreateMaybeMessage<::keyapis::iot_connect::sber::v1::DeviceCommand_Value>(Arena*);
template <>
::keyapis::iot_connect::sber::v1::PostV1CommandRequest* Arena::CreateMaybeMessage<::keyapis::iot_connect::sber::v1::PostV1CommandRequest>(Arena*);
template <>
::keyapis::iot_connect::sber::v1::PostV1CommandRequest_DevicesEntry_DoNotUse* Arena::CreateMaybeMessage<::keyapis::iot_connect::sber::v1::PostV1CommandRequest_DevicesEntry_DoNotUse>(Arena*);
template <>
::keyapis::iot_connect::sber::v1::PostV1CommandResponse* Arena::CreateMaybeMessage<::keyapis::iot_connect::sber::v1::PostV1CommandResponse>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace keyapis {
namespace iot_connect {
namespace sber {
namespace v1 {
enum DeviceCommand_Value_Type : int {
  DeviceCommand_Value_Type_TYPE_UNKNOWN = 0,
  DeviceCommand_Value_Type_ENUM = 1,
  DeviceCommand_Value_Type_DeviceCommand_Value_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  DeviceCommand_Value_Type_DeviceCommand_Value_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool DeviceCommand_Value_Type_IsValid(int value);
constexpr DeviceCommand_Value_Type DeviceCommand_Value_Type_Type_MIN = static_cast<DeviceCommand_Value_Type>(0);
constexpr DeviceCommand_Value_Type DeviceCommand_Value_Type_Type_MAX = static_cast<DeviceCommand_Value_Type>(1);
constexpr int DeviceCommand_Value_Type_Type_ARRAYSIZE = 1 + 1;
const std::string& DeviceCommand_Value_Type_Name(DeviceCommand_Value_Type value);
template <typename T>
const std::string& DeviceCommand_Value_Type_Name(T value) {
  static_assert(std::is_same<T, DeviceCommand_Value_Type>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return DeviceCommand_Value_Type_Name(static_cast<DeviceCommand_Value_Type>(value));
}
const std::string& DeviceCommand_Value_Type_Name(DeviceCommand_Value_Type value);
bool DeviceCommand_Value_Type_Parse(absl::string_view name, DeviceCommand_Value_Type* value);
enum DeviceCommand_Value_ValueEnumType : int {
  DeviceCommand_Value_ValueEnumType_value_enum_type_unknown = 0,
  DeviceCommand_Value_ValueEnumType_reject = 1,
  DeviceCommand_Value_ValueEnumType_unlock = 2,
  DeviceCommand_Value_ValueEnumType_DeviceCommand_Value_ValueEnumType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  DeviceCommand_Value_ValueEnumType_DeviceCommand_Value_ValueEnumType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool DeviceCommand_Value_ValueEnumType_IsValid(int value);
constexpr DeviceCommand_Value_ValueEnumType DeviceCommand_Value_ValueEnumType_ValueEnumType_MIN = static_cast<DeviceCommand_Value_ValueEnumType>(0);
constexpr DeviceCommand_Value_ValueEnumType DeviceCommand_Value_ValueEnumType_ValueEnumType_MAX = static_cast<DeviceCommand_Value_ValueEnumType>(2);
constexpr int DeviceCommand_Value_ValueEnumType_ValueEnumType_ARRAYSIZE = 2 + 1;
const std::string& DeviceCommand_Value_ValueEnumType_Name(DeviceCommand_Value_ValueEnumType value);
template <typename T>
const std::string& DeviceCommand_Value_ValueEnumType_Name(T value) {
  static_assert(std::is_same<T, DeviceCommand_Value_ValueEnumType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to ValueEnumType_Name().");
  return DeviceCommand_Value_ValueEnumType_Name(static_cast<DeviceCommand_Value_ValueEnumType>(value));
}
const std::string& DeviceCommand_Value_ValueEnumType_Name(DeviceCommand_Value_ValueEnumType value);
bool DeviceCommand_Value_ValueEnumType_Parse(absl::string_view name, DeviceCommand_Value_ValueEnumType* value);
enum DeviceCommand_KeyType : int {
  DeviceCommand_KeyType_key_type_unknown = 0,
  DeviceCommand_KeyType_reject_call = 1,
  DeviceCommand_KeyType_unlock = 2,
  DeviceCommand_KeyType_DeviceCommand_KeyType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  DeviceCommand_KeyType_DeviceCommand_KeyType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool DeviceCommand_KeyType_IsValid(int value);
constexpr DeviceCommand_KeyType DeviceCommand_KeyType_KeyType_MIN = static_cast<DeviceCommand_KeyType>(0);
constexpr DeviceCommand_KeyType DeviceCommand_KeyType_KeyType_MAX = static_cast<DeviceCommand_KeyType>(2);
constexpr int DeviceCommand_KeyType_KeyType_ARRAYSIZE = 2 + 1;
const std::string& DeviceCommand_KeyType_Name(DeviceCommand_KeyType value);
template <typename T>
const std::string& DeviceCommand_KeyType_Name(T value) {
  static_assert(std::is_same<T, DeviceCommand_KeyType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to KeyType_Name().");
  return DeviceCommand_KeyType_Name(static_cast<DeviceCommand_KeyType>(value));
}
const std::string& DeviceCommand_KeyType_Name(DeviceCommand_KeyType value);
bool DeviceCommand_KeyType_Parse(absl::string_view name, DeviceCommand_KeyType* value);

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


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

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

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

  inline DeviceCommandArray& operator=(const DeviceCommandArray& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeviceCommandArray& operator=(DeviceCommandArray&& 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 DeviceCommandArray& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeviceCommandArray* internal_default_instance() {
    return reinterpret_cast<const DeviceCommandArray*>(
               &_DeviceCommandArray_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(DeviceCommandArray& a, DeviceCommandArray& b) {
    a.Swap(&b);
  }
  inline void Swap(DeviceCommandArray* 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(DeviceCommandArray* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DeviceCommandArray* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DeviceCommandArray>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const DeviceCommandArray& from);
  void MergeFrom(const DeviceCommandArray& 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(DeviceCommandArray* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.iot_connect.sber.v1.DeviceCommandArray";
  }
  protected:
  explicit DeviceCommandArray(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  enum : int {
    kStatesFieldNumber = 1,
  };
  // repeated .keyapis.iot_connect.sber.v1.DeviceCommand states = 1;
  int states_size() const;
  private:
  int _internal_states_size() const;

  public:
  void clear_states() ;
  ::keyapis::iot_connect::sber::v1::DeviceCommand* mutable_states(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::iot_connect::sber::v1::DeviceCommand >*
      mutable_states();
  private:
  const ::keyapis::iot_connect::sber::v1::DeviceCommand& _internal_states(int index) const;
  ::keyapis::iot_connect::sber::v1::DeviceCommand* _internal_add_states();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::iot_connect::sber::v1::DeviceCommand>& _internal_states() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::iot_connect::sber::v1::DeviceCommand>* _internal_mutable_states();
  public:
  const ::keyapis::iot_connect::sber::v1::DeviceCommand& states(int index) const;
  ::keyapis::iot_connect::sber::v1::DeviceCommand* add_states();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::iot_connect::sber::v1::DeviceCommand >&
      states() const;
  // @@protoc_insertion_point(class_scope:keyapis.iot_connect.sber.v1.DeviceCommandArray)
 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< ::keyapis::iot_connect::sber::v1::DeviceCommand > states_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto;
};// -------------------------------------------------------------------

class DeviceCommand_Value final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.iot_connect.sber.v1.DeviceCommand.Value) */ {
 public:
  inline DeviceCommand_Value() : DeviceCommand_Value(nullptr) {}
  ~DeviceCommand_Value() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR DeviceCommand_Value(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

  inline DeviceCommand_Value& operator=(const DeviceCommand_Value& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeviceCommand_Value& operator=(DeviceCommand_Value&& 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 DeviceCommand_Value& default_instance() {
    return *internal_default_instance();
  }
  enum ValueCase {
    kValueEnumType = 2,
    VALUE_NOT_SET = 0,
  };

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

  friend void swap(DeviceCommand_Value& a, DeviceCommand_Value& b) {
    a.Swap(&b);
  }
  inline void Swap(DeviceCommand_Value* 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(DeviceCommand_Value* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DeviceCommand_Value* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DeviceCommand_Value>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const DeviceCommand_Value& from);
  void MergeFrom(const DeviceCommand_Value& 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(DeviceCommand_Value* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.iot_connect.sber.v1.DeviceCommand.Value";
  }
  protected:
  explicit DeviceCommand_Value(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  using Type = DeviceCommand_Value_Type;
  static constexpr Type TYPE_UNKNOWN = DeviceCommand_Value_Type_TYPE_UNKNOWN;
  static constexpr Type ENUM = DeviceCommand_Value_Type_ENUM;
  static inline bool Type_IsValid(int value) {
    return DeviceCommand_Value_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = DeviceCommand_Value_Type_Type_MIN;
  static constexpr Type Type_MAX = DeviceCommand_Value_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = DeviceCommand_Value_Type_Type_ARRAYSIZE;
  template <typename T>
  static inline const std::string& Type_Name(T value) {
    return DeviceCommand_Value_Type_Name(value);
  }
  static inline bool Type_Parse(absl::string_view name, Type* value) {
    return DeviceCommand_Value_Type_Parse(name, value);
  }

  using ValueEnumType = DeviceCommand_Value_ValueEnumType;
  static constexpr ValueEnumType value_enum_type_unknown = DeviceCommand_Value_ValueEnumType_value_enum_type_unknown;
  static constexpr ValueEnumType reject = DeviceCommand_Value_ValueEnumType_reject;
  static constexpr ValueEnumType unlock = DeviceCommand_Value_ValueEnumType_unlock;
  static inline bool ValueEnumType_IsValid(int value) {
    return DeviceCommand_Value_ValueEnumType_IsValid(value);
  }
  static constexpr ValueEnumType ValueEnumType_MIN = DeviceCommand_Value_ValueEnumType_ValueEnumType_MIN;
  static constexpr ValueEnumType ValueEnumType_MAX = DeviceCommand_Value_ValueEnumType_ValueEnumType_MAX;
  static constexpr int ValueEnumType_ARRAYSIZE = DeviceCommand_Value_ValueEnumType_ValueEnumType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& ValueEnumType_Name(T value) {
    return DeviceCommand_Value_ValueEnumType_Name(value);
  }
  static inline bool ValueEnumType_Parse(absl::string_view name, ValueEnumType* value) {
    return DeviceCommand_Value_ValueEnumType_Parse(name, value);
  }

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

  enum : int {
    kTypeFieldNumber = 1,
    kValueEnumTypeFieldNumber = 2,
  };
  // .keyapis.iot_connect.sber.v1.DeviceCommand.Value.Type type = 1;
  void clear_type() ;
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type type() const;
  void set_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type value);

  private:
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type _internal_type() const;
  void _internal_set_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type value);

  public:
  // .keyapis.iot_connect.sber.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];
  bool has_value_enum_type() const;
  void clear_value_enum_type() ;
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType value_enum_type() const;
  void set_value_enum_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType value);

  private:
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType _internal_value_enum_type() const;
  void _internal_set_value_enum_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType value);

  public:
  void clear_value();
  ValueCase value_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.iot_connect.sber.v1.DeviceCommand.Value)
 private:
  class _Internal;
  void set_has_value_enum_type();

  inline bool has_value() const;
  inline void clear_has_value();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int type_;
    union ValueUnion {
      constexpr ValueUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      int value_enum_type_;
    } value_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline DeviceCommand& operator=(const DeviceCommand& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeviceCommand& operator=(DeviceCommand&& 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 DeviceCommand& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeviceCommand* internal_default_instance() {
    return reinterpret_cast<const DeviceCommand*>(
               &_DeviceCommand_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(DeviceCommand& a, DeviceCommand& b) {
    a.Swap(&b);
  }
  inline void Swap(DeviceCommand* 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(DeviceCommand* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DeviceCommand* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DeviceCommand>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const DeviceCommand& from);
  void MergeFrom(const DeviceCommand& 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(DeviceCommand* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.iot_connect.sber.v1.DeviceCommand";
  }
  protected:
  explicit DeviceCommand(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef DeviceCommand_Value Value;

  using KeyType = DeviceCommand_KeyType;
  static constexpr KeyType key_type_unknown = DeviceCommand_KeyType_key_type_unknown;
  static constexpr KeyType reject_call = DeviceCommand_KeyType_reject_call;
  static constexpr KeyType unlock = DeviceCommand_KeyType_unlock;
  static inline bool KeyType_IsValid(int value) {
    return DeviceCommand_KeyType_IsValid(value);
  }
  static constexpr KeyType KeyType_MIN = DeviceCommand_KeyType_KeyType_MIN;
  static constexpr KeyType KeyType_MAX = DeviceCommand_KeyType_KeyType_MAX;
  static constexpr int KeyType_ARRAYSIZE = DeviceCommand_KeyType_KeyType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& KeyType_Name(T value) {
    return DeviceCommand_KeyType_Name(value);
  }
  static inline bool KeyType_Parse(absl::string_view name, KeyType* value) {
    return DeviceCommand_KeyType_Parse(name, value);
  }

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

  enum : int {
    kValueFieldNumber = 2,
    kCommandKeyTypeFieldNumber = 1,
  };
  // .keyapis.iot_connect.sber.v1.DeviceCommand.Value value = 2;
  bool has_value() const;
  void clear_value() ;
  const ::keyapis::iot_connect::sber::v1::DeviceCommand_Value& value() const;
  PROTOBUF_NODISCARD ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* release_value();
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* mutable_value();
  void set_allocated_value(::keyapis::iot_connect::sber::v1::DeviceCommand_Value* value);
  private:
  const ::keyapis::iot_connect::sber::v1::DeviceCommand_Value& _internal_value() const;
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* _internal_mutable_value();
  public:
  void unsafe_arena_set_allocated_value(
      ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* value);
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* unsafe_arena_release_value();
  // .keyapis.iot_connect.sber.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];
  void clear_command_key_type() ;
  ::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType command_key_type() const;
  void set_command_key_type(::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType value);

  private:
  ::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType _internal_command_key_type() const;
  void _internal_set_command_key_type(::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.iot_connect.sber.v1.DeviceCommand)
 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_;
    ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* value_;
    int command_key_type_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto;
};// -------------------------------------------------------------------

class PostV1CommandRequest_DevicesEntry_DoNotUse final : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<PostV1CommandRequest_DevicesEntry_DoNotUse, 
    std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<PostV1CommandRequest_DevicesEntry_DoNotUse, 
    std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> SuperType;
  PostV1CommandRequest_DevicesEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR PostV1CommandRequest_DevicesEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit PostV1CommandRequest_DevicesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const PostV1CommandRequest_DevicesEntry_DoNotUse& other);
  static const PostV1CommandRequest_DevicesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const PostV1CommandRequest_DevicesEntry_DoNotUse*>(&_PostV1CommandRequest_DevicesEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.iot_connect.sber.v1.PostV1CommandRequest.DevicesEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  friend struct ::TableStruct_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline PostV1CommandRequest& operator=(const PostV1CommandRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostV1CommandRequest& operator=(PostV1CommandRequest&& 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 PostV1CommandRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostV1CommandRequest* internal_default_instance() {
    return reinterpret_cast<const PostV1CommandRequest*>(
               &_PostV1CommandRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(PostV1CommandRequest& a, PostV1CommandRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PostV1CommandRequest* 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(PostV1CommandRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostV1CommandRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostV1CommandRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostV1CommandRequest& from);
  void MergeFrom(const PostV1CommandRequest& 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(PostV1CommandRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.iot_connect.sber.v1.PostV1CommandRequest";
  }
  protected:
  explicit PostV1CommandRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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


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

  enum : int {
    kDevicesFieldNumber = 1,
  };
  // map<string, .keyapis.iot_connect.sber.v1.DeviceCommandArray> devices = 1;
  int devices_size() const;
  private:
  int _internal_devices_size() const;

  public:
  void clear_devices() ;
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >&
      _internal_devices() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >*
      _internal_mutable_devices();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >&
      devices() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >*
      mutable_devices();
  // @@protoc_insertion_point(class_scope:keyapis.iot_connect.sber.v1.PostV1CommandRequest)
 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::MapFieldLite<
        PostV1CommandRequest_DevicesEntry_DoNotUse,
        std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> devices_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PostV1CommandResponse& operator=(const PostV1CommandResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostV1CommandResponse& operator=(PostV1CommandResponse&& 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 PostV1CommandResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostV1CommandResponse* internal_default_instance() {
    return reinterpret_cast<const PostV1CommandResponse*>(
               &_PostV1CommandResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(PostV1CommandResponse& a, PostV1CommandResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PostV1CommandResponse* 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(PostV1CommandResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostV1CommandResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostV1CommandResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostV1CommandResponse& from);
  void MergeFrom(const PostV1CommandResponse& 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(PostV1CommandResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.iot_connect.sber.v1.PostV1CommandResponse";
  }
  protected:
  explicit PostV1CommandResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.iot_connect.sber.v1.PostV1CommandResponse)
 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_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto;
};

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




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


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

// DeviceCommandArray

// repeated .keyapis.iot_connect.sber.v1.DeviceCommand states = 1;
inline int DeviceCommandArray::_internal_states_size() const {
  return _impl_.states_.size();
}
inline int DeviceCommandArray::states_size() const {
  return _internal_states_size();
}
inline void DeviceCommandArray::clear_states() {
  _internal_mutable_states()->Clear();
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand* DeviceCommandArray::mutable_states(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.iot_connect.sber.v1.DeviceCommandArray.states)
  return _internal_mutable_states()->Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::iot_connect::sber::v1::DeviceCommand >*
DeviceCommandArray::mutable_states() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.iot_connect.sber.v1.DeviceCommandArray.states)
  return _internal_mutable_states();
}
inline const ::keyapis::iot_connect::sber::v1::DeviceCommand& DeviceCommandArray::_internal_states(int index) const {
  return _internal_states().Get(index);
}
inline const ::keyapis::iot_connect::sber::v1::DeviceCommand& DeviceCommandArray::states(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.iot_connect.sber.v1.DeviceCommandArray.states)
  return _internal_states(index);
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand* DeviceCommandArray::_internal_add_states() {
  return _internal_mutable_states()->Add();
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand* DeviceCommandArray::add_states() {
  ::keyapis::iot_connect::sber::v1::DeviceCommand* _add = _internal_add_states();
  // @@protoc_insertion_point(field_add:keyapis.iot_connect.sber.v1.DeviceCommandArray.states)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::iot_connect::sber::v1::DeviceCommand >&
DeviceCommandArray::states() const {
  // @@protoc_insertion_point(field_list:keyapis.iot_connect.sber.v1.DeviceCommandArray.states)
  return _internal_states();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::iot_connect::sber::v1::DeviceCommand>&
DeviceCommandArray::_internal_states() const {
  return _impl_.states_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::iot_connect::sber::v1::DeviceCommand>*
DeviceCommandArray::_internal_mutable_states() {
  return &_impl_.states_;
}

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

// DeviceCommand_Value

// .keyapis.iot_connect.sber.v1.DeviceCommand.Value.Type type = 1;
inline void DeviceCommand_Value::clear_type() {
  _impl_.type_ = 0;
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type DeviceCommand_Value::type() const {
  // @@protoc_insertion_point(field_get:keyapis.iot_connect.sber.v1.DeviceCommand.Value.type)
  return _internal_type();
}
inline void DeviceCommand_Value::set_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type value) {
   _internal_set_type(value);
  // @@protoc_insertion_point(field_set:keyapis.iot_connect.sber.v1.DeviceCommand.Value.type)
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type DeviceCommand_Value::_internal_type() const {
  return static_cast<::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type>(_impl_.type_);
}
inline void DeviceCommand_Value::_internal_set_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type value) {
  ;
  _impl_.type_ = value;
}

// .keyapis.iot_connect.sber.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];
inline bool DeviceCommand_Value::has_value_enum_type() const {
  return value_case() == kValueEnumType;
}
inline void DeviceCommand_Value::set_has_value_enum_type() {
  _impl_._oneof_case_[0] = kValueEnumType;
}
inline void DeviceCommand_Value::clear_value_enum_type() {
  if (value_case() == kValueEnumType) {
    _impl_.value_.value_enum_type_ = 0;
    clear_has_value();
  }
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType DeviceCommand_Value::value_enum_type() const {
  // @@protoc_insertion_point(field_get:keyapis.iot_connect.sber.v1.DeviceCommand.Value.value_enum_type)
  return _internal_value_enum_type();
}
inline void DeviceCommand_Value::set_value_enum_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType value) {
   _internal_set_value_enum_type(value);
  // @@protoc_insertion_point(field_set:keyapis.iot_connect.sber.v1.DeviceCommand.Value.value_enum_type)
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType DeviceCommand_Value::_internal_value_enum_type() const {
  if (value_case() == kValueEnumType) {
    return static_cast<::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType>(_impl_.value_.value_enum_type_);
  }
  return static_cast<::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType>(0);
}
inline void DeviceCommand_Value::_internal_set_value_enum_type(::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType value) {
  if (value_case() != kValueEnumType) {
    clear_value();
    set_has_value_enum_type();
  }
  _impl_.value_.value_enum_type_ = value;
}

inline bool DeviceCommand_Value::has_value() const {
  return value_case() != VALUE_NOT_SET;
}
inline void DeviceCommand_Value::clear_has_value() {
  _impl_._oneof_case_[0] = VALUE_NOT_SET;
}
inline DeviceCommand_Value::ValueCase DeviceCommand_Value::value_case() const {
  return DeviceCommand_Value::ValueCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// DeviceCommand

// .keyapis.iot_connect.sber.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];
inline void DeviceCommand::clear_command_key_type() {
  _impl_.command_key_type_ = 0;
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType DeviceCommand::command_key_type() const {
  // @@protoc_insertion_point(field_get:keyapis.iot_connect.sber.v1.DeviceCommand.command_key_type)
  return _internal_command_key_type();
}
inline void DeviceCommand::set_command_key_type(::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType value) {
   _internal_set_command_key_type(value);
  // @@protoc_insertion_point(field_set:keyapis.iot_connect.sber.v1.DeviceCommand.command_key_type)
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType DeviceCommand::_internal_command_key_type() const {
  return static_cast<::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType>(_impl_.command_key_type_);
}
inline void DeviceCommand::_internal_set_command_key_type(::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType value) {
  ;
  _impl_.command_key_type_ = value;
}

// .keyapis.iot_connect.sber.v1.DeviceCommand.Value value = 2;
inline bool DeviceCommand::has_value() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.value_ != nullptr);
  return value;
}
inline void DeviceCommand::clear_value() {
  if (_impl_.value_ != nullptr) _impl_.value_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::iot_connect::sber::v1::DeviceCommand_Value& DeviceCommand::_internal_value() const {
  const ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* p = _impl_.value_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::iot_connect::sber::v1::DeviceCommand_Value&>(
      ::keyapis::iot_connect::sber::v1::_DeviceCommand_Value_default_instance_);
}
inline const ::keyapis::iot_connect::sber::v1::DeviceCommand_Value& DeviceCommand::value() const {
  // @@protoc_insertion_point(field_get:keyapis.iot_connect.sber.v1.DeviceCommand.value)
  return _internal_value();
}
inline void DeviceCommand::unsafe_arena_set_allocated_value(
    ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* value) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.value_);
  }
  _impl_.value_ = value;
  if (value) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.iot_connect.sber.v1.DeviceCommand.value)
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* DeviceCommand::release_value() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* temp = _impl_.value_;
  _impl_.value_ = 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 ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* DeviceCommand::unsafe_arena_release_value() {
  // @@protoc_insertion_point(field_release:keyapis.iot_connect.sber.v1.DeviceCommand.value)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* temp = _impl_.value_;
  _impl_.value_ = nullptr;
  return temp;
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* DeviceCommand::_internal_mutable_value() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.value_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::iot_connect::sber::v1::DeviceCommand_Value>(GetArenaForAllocation());
    _impl_.value_ = p;
  }
  return _impl_.value_;
}
inline ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* DeviceCommand::mutable_value() {
  ::keyapis::iot_connect::sber::v1::DeviceCommand_Value* _msg = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:keyapis.iot_connect.sber.v1.DeviceCommand.value)
  return _msg;
}
inline void DeviceCommand::set_allocated_value(::keyapis::iot_connect::sber::v1::DeviceCommand_Value* value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.value_;
  }
  if (value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(value);
    if (message_arena != submessage_arena) {
      value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.value_ = value;
  // @@protoc_insertion_point(field_set_allocated:keyapis.iot_connect.sber.v1.DeviceCommand.value)
}

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

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

// PostV1CommandRequest

// map<string, .keyapis.iot_connect.sber.v1.DeviceCommandArray> devices = 1;
inline int PostV1CommandRequest::_internal_devices_size() const {
  return _impl_.devices_.size();
}
inline int PostV1CommandRequest::devices_size() const {
  return _internal_devices_size();
}
inline void PostV1CommandRequest::clear_devices() {
  _impl_.devices_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >&
PostV1CommandRequest::_internal_devices() const {
  return _impl_.devices_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >&
PostV1CommandRequest::devices() const {
  // @@protoc_insertion_point(field_map:keyapis.iot_connect.sber.v1.PostV1CommandRequest.devices)
  return _internal_devices();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >*
PostV1CommandRequest::_internal_mutable_devices() {
  return _impl_.devices_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::keyapis::iot_connect::sber::v1::DeviceCommandArray >*
PostV1CommandRequest::mutable_devices() {
  // @@protoc_insertion_point(field_mutable_map:keyapis.iot_connect.sber.v1.PostV1CommandRequest.devices)
  return _internal_mutable_devices();
}

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

// PostV1CommandResponse

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace sber
}  // namespace iot_connect
}  // namespace keyapis


PROTOBUF_NAMESPACE_OPEN

template <>
struct is_proto_enum<::keyapis::iot_connect::sber::v1::DeviceCommand_Value_Type> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::iot_connect::sber::v1::DeviceCommand_Value_ValueEnumType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::iot_connect::sber::v1::DeviceCommand_KeyType> : std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_keyapis_2fiot_5fconnect_5fsber_2fv1_2fkeyapis_5fiot_5fconnect_5fcommand_5fv1_2eproto_2epb_2eh
