// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/iot_connect/v1/keyapis_iot_connect_callback_v1.proto

// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
 #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif

#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
 #import <Protobuf/GPBProtocolBuffers.h>
#else
 #import "GPBProtocolBuffers.h"
#endif

#if GOOGLE_PROTOBUF_OBJC_VERSION < 30007
#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
#if 30007 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
#endif

// @@protoc_insertion_point(imports)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"

CF_EXTERN_C_BEGIN

@class KEYAPISIOTCONNECTV1Device;
@class KEYAPISIOTCONNECTV1DeviceCommand;
@class KEYAPISIOTCONNECTV1DeviceCommandArray;
@class KEYAPISIOTCONNECTV1DeviceCommand_Value;
@class KEYAPISIOTCONNECTV1DeviceState;
@class KEYAPISIOTCONNECTV1DeviceStateArray;
@class KEYAPISIOTCONNECTV1DeviceState_Value;
@class KEYAPISIOTCONNECTV1Model;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISIOTCONNECTV1Model_FeatureType

/** Список функций устройства */
typedef GPB_ENUM(KEYAPISIOTCONNECTV1Model_FeatureType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISIOTCONNECTV1Model_FeatureType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISIOTCONNECTV1Model_FeatureType_FeatureTypeUnknown = 0,

  /** Сигнализация о поступившем звонке */
  KEYAPISIOTCONNECTV1Model_FeatureType_IncomingCall = 1,

  /** Сигнализация о доступности устройства */
  KEYAPISIOTCONNECTV1Model_FeatureType_Online = 2,

  /** Отклонение звонка */
  KEYAPISIOTCONNECTV1Model_FeatureType_RejectCall = 3,

  /** Открытие замка */
  KEYAPISIOTCONNECTV1Model_FeatureType_Unlock = 4,
};

GPBEnumDescriptor *KEYAPISIOTCONNECTV1Model_FeatureType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISIOTCONNECTV1Model_FeatureType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISIOTCONNECTV1DeviceCommand_KeyType

/** Список ключей команд на изменение статуса устройства */
typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommand_KeyType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISIOTCONNECTV1DeviceCommand_KeyType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISIOTCONNECTV1DeviceCommand_KeyType_KeyTypeUnknown = 0,

  /** Отклонение звонка */
  KEYAPISIOTCONNECTV1DeviceCommand_KeyType_RejectCall = 1,

  /** Открытие замка */
  KEYAPISIOTCONNECTV1DeviceCommand_KeyType_Unlock = 2,
};

GPBEnumDescriptor *KEYAPISIOTCONNECTV1DeviceCommand_KeyType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISIOTCONNECTV1DeviceCommand_KeyType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISIOTCONNECTV1DeviceCommand_Value_Type

/** Тип значения команд на изменение статуса устройства */
typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommand_Value_Type) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISIOTCONNECTV1DeviceCommand_Value_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISIOTCONNECTV1DeviceCommand_Value_Type_TypeUnknown = 0,

  /** Перечисление */
  KEYAPISIOTCONNECTV1DeviceCommand_Value_Type_Enum = 1,
};

GPBEnumDescriptor *KEYAPISIOTCONNECTV1DeviceCommand_Value_Type_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISIOTCONNECTV1DeviceCommand_Value_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType

/** Значения команд на изменение статуса устройства типа перечисление */
typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_ValueEnumTypeUnknown = 0,

  /** Отклонение звонка */
  KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_Reject = 1,

  /** Открытие замка */
  KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_Unlock = 2,
};

GPBEnumDescriptor *KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISIOTCONNECTV1DeviceState_KeyType

/** Список ключей статусов устройства */
typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceState_KeyType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISIOTCONNECTV1DeviceState_KeyType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISIOTCONNECTV1DeviceState_KeyType_KeyTypeUnknown = 0,

  /** Статус доступности устройства */
  KEYAPISIOTCONNECTV1DeviceState_KeyType_Online = 1,
};

GPBEnumDescriptor *KEYAPISIOTCONNECTV1DeviceState_KeyType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISIOTCONNECTV1DeviceState_KeyType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISIOTCONNECTV1DeviceState_Value_Type

/** Тип значения статуса устройства */
typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceState_Value_Type) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISIOTCONNECTV1DeviceState_Value_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISIOTCONNECTV1DeviceState_Value_Type_TypeUnknown = 0,

  /** Логический тип */
  KEYAPISIOTCONNECTV1DeviceState_Value_Type_Bool = 1,
};

GPBEnumDescriptor *KEYAPISIOTCONNECTV1DeviceState_Value_Type_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISIOTCONNECTV1DeviceState_Value_Type_IsValidValue(int32_t value);

#pragma mark - KEYAPISIOTCONNECTV1KeyapisIotConnectCallbackV1Root

/**
 * Exposes the extension registry for this file.
 *
 * The base class provides:
 * @code
 *   + (GPBExtensionRegistry *)extensionRegistry;
 * @endcode
 * which is a @c GPBExtensionRegistry that includes all the extensions defined by
 * this file and all files that it depends on.
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1KeyapisIotConnectCallbackV1Root : GPBRootObject
@end

#pragma mark - KEYAPISIOTCONNECTV1GetCallbackUserRequest

/**
 * Запрос метода получения пользователя для соединения аккаунтов
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1GetCallbackUserRequest : GPBMessage

@end

#pragma mark - KEYAPISIOTCONNECTV1GetCallbackUserResponse

typedef GPB_ENUM(KEYAPISIOTCONNECTV1GetCallbackUserResponse_FieldNumber) {
  KEYAPISIOTCONNECTV1GetCallbackUserResponse_FieldNumber_Data_p = 1,
};

/**
 * Ответ на запрос метода получения пользователя для соединения аккаунтов
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1GetCallbackUserResponse : GPBMessage

/** Идентификатор пользователя */
@property(nonatomic, readwrite) int32_t data_p;

@end

#pragma mark - KEYAPISIOTCONNECTV1Model

typedef GPB_ENUM(KEYAPISIOTCONNECTV1Model_FieldNumber) {
  KEYAPISIOTCONNECTV1Model_FieldNumber_Id_p = 1,
  KEYAPISIOTCONNECTV1Model_FieldNumber_Manufacturer = 2,
  KEYAPISIOTCONNECTV1Model_FieldNumber_Model = 3,
  KEYAPISIOTCONNECTV1Model_FieldNumber_HwVersion = 4,
  KEYAPISIOTCONNECTV1Model_FieldNumber_SwVersion = 5,
  KEYAPISIOTCONNECTV1Model_FieldNumber_Description_p = 6,
  KEYAPISIOTCONNECTV1Model_FieldNumber_Category = 7,
  KEYAPISIOTCONNECTV1Model_FieldNumber_FeatureTypesArray = 8,
};

/**
 * Объект Модель устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1Model : GPBMessage

/** Идентификатор модели */
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

/** Производитель */
@property(nonatomic, readwrite, copy, null_resettable) NSString *manufacturer;

/** Название модели */
@property(nonatomic, readwrite, copy, null_resettable) NSString *model;

/** Версия оборудования */
@property(nonatomic, readwrite, copy, null_resettable) NSString *hwVersion;

/** Версия прошивки */
@property(nonatomic, readwrite, copy, null_resettable) NSString *swVersion;

/** Описание */
@property(nonatomic, readwrite, copy, null_resettable) NSString *description_p;

/** Категория устройства */
@property(nonatomic, readwrite, copy, null_resettable) NSString *category;

/** Список функций */
// |featureTypesArray| contains |KEYAPISIOTCONNECTV1Model_FeatureType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *featureTypesArray;
/** The number of items in @c featureTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger featureTypesArray_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1Device

typedef GPB_ENUM(KEYAPISIOTCONNECTV1Device_FieldNumber) {
  KEYAPISIOTCONNECTV1Device_FieldNumber_Id_p = 1,
  KEYAPISIOTCONNECTV1Device_FieldNumber_Name = 2,
  KEYAPISIOTCONNECTV1Device_FieldNumber_DefaultName = 3,
  KEYAPISIOTCONNECTV1Device_FieldNumber_Home = 4,
  KEYAPISIOTCONNECTV1Device_FieldNumber_Room = 5,
  KEYAPISIOTCONNECTV1Device_FieldNumber_Model = 6,
  KEYAPISIOTCONNECTV1Device_FieldNumber_HwVersion = 7,
  KEYAPISIOTCONNECTV1Device_FieldNumber_SwVersion = 8,
};

/**
 * Объект устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1Device : GPBMessage

/**
 * Идентификатор устройства на платформе Ключ.
 * Конкатенация user_id и device_id плафтормы Ключ
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

/** Название устройства на платформе Ключ */
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;

/** Название устройства от производителя */
@property(nonatomic, readwrite, copy, null_resettable) NSString *defaultName;

/** Адрес дома, где установлено устройство */
@property(nonatomic, readwrite, copy, null_resettable) NSString *home;

/** Название или номер подъезда */
@property(nonatomic, readwrite, copy, null_resettable) NSString *room;

/** Тип устройства */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISIOTCONNECTV1Model *model;
/** Test to see if @c model has been set. */
@property(nonatomic, readwrite) BOOL hasModel;

/** HW версия устройства */
@property(nonatomic, readwrite, copy, null_resettable) NSString *hwVersion;

/** SW версия устройства */
@property(nonatomic, readwrite, copy, null_resettable) NSString *swVersion;

@end

#pragma mark - KEYAPISIOTCONNECTV1DeviceStateArray

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceStateArray_FieldNumber) {
  KEYAPISIOTCONNECTV1DeviceStateArray_FieldNumber_StatesArray = 1,
};

/**
 * Массив статусов устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1DeviceStateArray : GPBMessage

/** Статусы устройства */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISIOTCONNECTV1DeviceState*> *statesArray;
/** The number of items in @c statesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger statesArray_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1DeviceCommandArray

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommandArray_FieldNumber) {
  KEYAPISIOTCONNECTV1DeviceCommandArray_FieldNumber_StatesArray = 1,
};

/**
 * Массив команд на изменение статуса устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1DeviceCommandArray : GPBMessage

/** Команды на изменение статуса устройства */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISIOTCONNECTV1DeviceCommand*> *statesArray;
/** The number of items in @c statesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger statesArray_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1DeviceCommand

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommand_FieldNumber) {
  KEYAPISIOTCONNECTV1DeviceCommand_FieldNumber_CommandKeyType = 1,
  KEYAPISIOTCONNECTV1DeviceCommand_FieldNumber_Value = 2,
};

/**
 * Команды на изменение статуса устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1DeviceCommand : GPBMessage

/** Тип команды на изменение статуса устройства */
@property(nonatomic, readwrite) KEYAPISIOTCONNECTV1DeviceCommand_KeyType commandKeyType;

/** Значение команды на изменение статуса устройства */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISIOTCONNECTV1DeviceCommand_Value *value;
/** Test to see if @c value has been set. */
@property(nonatomic, readwrite) BOOL hasValue;

@end

/**
 * Fetches the raw value of a @c KEYAPISIOTCONNECTV1DeviceCommand's @c commandKeyType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISIOTCONNECTV1DeviceCommand_CommandKeyType_RawValue(KEYAPISIOTCONNECTV1DeviceCommand *message);
/**
 * Sets the raw value of an @c KEYAPISIOTCONNECTV1DeviceCommand's @c commandKeyType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISIOTCONNECTV1DeviceCommand_CommandKeyType_RawValue(KEYAPISIOTCONNECTV1DeviceCommand *message, int32_t value);

#pragma mark - KEYAPISIOTCONNECTV1DeviceCommand_Value

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommand_Value_FieldNumber) {
  KEYAPISIOTCONNECTV1DeviceCommand_Value_FieldNumber_Type = 1,
  KEYAPISIOTCONNECTV1DeviceCommand_Value_FieldNumber_ValueEnumType = 2,
};

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceCommand_Value_Value_OneOfCase) {
  KEYAPISIOTCONNECTV1DeviceCommand_Value_Value_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISIOTCONNECTV1DeviceCommand_Value_Value_OneOfCase_ValueEnumType = 2,
};

/**
 * Значение команды на изменение статуса устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1DeviceCommand_Value : GPBMessage

/** Тип значения команды на изменение статуса устройства */
@property(nonatomic, readwrite) KEYAPISIOTCONNECTV1DeviceCommand_Value_Type type;

/** Значение команды на изменение статуса устройства */
@property(nonatomic, readonly) KEYAPISIOTCONNECTV1DeviceCommand_Value_Value_OneOfCase valueOneOfCase;

/** Значения команды на изменение статуса устройства типа перечисление */
@property(nonatomic, readwrite) KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType valueEnumType;

@end

/**
 * Fetches the raw value of a @c KEYAPISIOTCONNECTV1DeviceCommand_Value's @c type property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISIOTCONNECTV1DeviceCommand_Value_Type_RawValue(KEYAPISIOTCONNECTV1DeviceCommand_Value *message);
/**
 * Sets the raw value of an @c KEYAPISIOTCONNECTV1DeviceCommand_Value's @c type property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISIOTCONNECTV1DeviceCommand_Value_Type_RawValue(KEYAPISIOTCONNECTV1DeviceCommand_Value *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISIOTCONNECTV1DeviceCommand_Value's @c valueEnumType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_RawValue(KEYAPISIOTCONNECTV1DeviceCommand_Value *message);
/**
 * Sets the raw value of an @c KEYAPISIOTCONNECTV1DeviceCommand_Value's @c valueEnumType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISIOTCONNECTV1DeviceCommand_Value_ValueEnumType_RawValue(KEYAPISIOTCONNECTV1DeviceCommand_Value *message, int32_t value);

/**
 * Clears whatever value was set for the oneof 'value'.
 **/
void KEYAPISIOTCONNECTV1DeviceCommand_Value_ClearValueOneOfCase(KEYAPISIOTCONNECTV1DeviceCommand_Value *message);

#pragma mark - KEYAPISIOTCONNECTV1DeviceState

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceState_FieldNumber) {
  KEYAPISIOTCONNECTV1DeviceState_FieldNumber_StateKeyType = 1,
  KEYAPISIOTCONNECTV1DeviceState_FieldNumber_Value = 2,
};

/**
 * Статус устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1DeviceState : GPBMessage

/** Тип статуса устройства */
@property(nonatomic, readwrite) KEYAPISIOTCONNECTV1DeviceState_KeyType stateKeyType;

/** Значение статуса устройства */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISIOTCONNECTV1DeviceState_Value *value;
/** Test to see if @c value has been set. */
@property(nonatomic, readwrite) BOOL hasValue;

@end

/**
 * Fetches the raw value of a @c KEYAPISIOTCONNECTV1DeviceState's @c stateKeyType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISIOTCONNECTV1DeviceState_StateKeyType_RawValue(KEYAPISIOTCONNECTV1DeviceState *message);
/**
 * Sets the raw value of an @c KEYAPISIOTCONNECTV1DeviceState's @c stateKeyType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISIOTCONNECTV1DeviceState_StateKeyType_RawValue(KEYAPISIOTCONNECTV1DeviceState *message, int32_t value);

#pragma mark - KEYAPISIOTCONNECTV1DeviceState_Value

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceState_Value_FieldNumber) {
  KEYAPISIOTCONNECTV1DeviceState_Value_FieldNumber_Type = 1,
  KEYAPISIOTCONNECTV1DeviceState_Value_FieldNumber_IsValue = 2,
};

typedef GPB_ENUM(KEYAPISIOTCONNECTV1DeviceState_Value_Value_OneOfCase) {
  KEYAPISIOTCONNECTV1DeviceState_Value_Value_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISIOTCONNECTV1DeviceState_Value_Value_OneOfCase_IsValue = 2,
};

/**
 * Значение статуса устройства
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1DeviceState_Value : GPBMessage

/** Тип значения статуса устройства */
@property(nonatomic, readwrite) KEYAPISIOTCONNECTV1DeviceState_Value_Type type;

/** Значение статуса устройства */
@property(nonatomic, readonly) KEYAPISIOTCONNECTV1DeviceState_Value_Value_OneOfCase valueOneOfCase;

/** Значение логического типа */
@property(nonatomic, readwrite) BOOL isValue;

@end

/**
 * Fetches the raw value of a @c KEYAPISIOTCONNECTV1DeviceState_Value's @c type property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISIOTCONNECTV1DeviceState_Value_Type_RawValue(KEYAPISIOTCONNECTV1DeviceState_Value *message);
/**
 * Sets the raw value of an @c KEYAPISIOTCONNECTV1DeviceState_Value's @c type property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISIOTCONNECTV1DeviceState_Value_Type_RawValue(KEYAPISIOTCONNECTV1DeviceState_Value *message, int32_t value);

/**
 * Clears whatever value was set for the oneof 'value'.
 **/
void KEYAPISIOTCONNECTV1DeviceState_Value_ClearValueOneOfCase(KEYAPISIOTCONNECTV1DeviceState_Value *message);

#pragma mark - KEYAPISIOTCONNECTV1GetCallbackDevicesRequest

/**
 * Запрос метода получения устройств, доступных пользователю
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1GetCallbackDevicesRequest : GPBMessage

@end

#pragma mark - KEYAPISIOTCONNECTV1GetCallbackDevicesResponse

typedef GPB_ENUM(KEYAPISIOTCONNECTV1GetCallbackDevicesResponse_FieldNumber) {
  KEYAPISIOTCONNECTV1GetCallbackDevicesResponse_FieldNumber_DataArray = 1,
};

/**
 * Ответ на запрос метода получения устройств, доступных пользователю
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1GetCallbackDevicesResponse : GPBMessage

/** Домофоны, доступные пользователю */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISIOTCONNECTV1Device*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1PostCallbackQueryRequest

typedef GPB_ENUM(KEYAPISIOTCONNECTV1PostCallbackQueryRequest_FieldNumber) {
  KEYAPISIOTCONNECTV1PostCallbackQueryRequest_FieldNumber_DevicesArray = 1,
};

/**
 * Запрос статуса домофонов пользователя
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1PostCallbackQueryRequest : GPBMessage

/** Массив идентификаторов домофонов пользователя */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *devicesArray;
/** The number of items in @c devicesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger devicesArray_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1PostCallbackQueryResponse

typedef GPB_ENUM(KEYAPISIOTCONNECTV1PostCallbackQueryResponse_FieldNumber) {
  KEYAPISIOTCONNECTV1PostCallbackQueryResponse_FieldNumber_Data_p = 1,
};

/**
 * Ответ на запрос статуса домофонов пользователя
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1PostCallbackQueryResponse : GPBMessage

/** Массив домофонов со статусами */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, KEYAPISIOTCONNECTV1DeviceStateArray*> *data_p;
/** The number of items in @c data_p without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger data_p_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1PostCallbackCommandRequest

typedef GPB_ENUM(KEYAPISIOTCONNECTV1PostCallbackCommandRequest_FieldNumber) {
  KEYAPISIOTCONNECTV1PostCallbackCommandRequest_FieldNumber_Devices = 1,
};

/**
 * Запрос на изменение статуса домофона
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1PostCallbackCommandRequest : GPBMessage

/** Массив домофонов со статусами */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, KEYAPISIOTCONNECTV1DeviceCommandArray*> *devices;
/** The number of items in @c devices without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger devices_Count;

@end

#pragma mark - KEYAPISIOTCONNECTV1PostCallbackCommandResponse

/**
 * Ответ на запрос на изменение статуса домофона
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1PostCallbackCommandResponse : GPBMessage

@end

#pragma mark - KEYAPISIOTCONNECTV1PostCallbackUnlinkRequest

/**
 * Запрос метода разъединения аккаунтов
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1PostCallbackUnlinkRequest : GPBMessage

@end

#pragma mark - KEYAPISIOTCONNECTV1PostCallbackUnlinkResponse

/**
 * Ответ на запрос метода разъединения аккаунтов
 **/
GPB_FINAL @interface KEYAPISIOTCONNECTV1PostCallbackUnlinkResponse : GPBMessage

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
