// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: deviceapis/device/v1/deviceapis_device_relay_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 DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error;
@class DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error;
@class DEVICEAPISDEVICEV1PostRelayCloseResponse_Error;
@class DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error;
@class DEVICEAPISDEVICEV1PostRelayOpenResponse_Error;
@class DEVICEAPISDEVICEV1RelayDtmf;
@class DEVICEAPISDEVICEV1RelayOpen;
@class DEVICEAPISDEVICEV1RelayState;
@class DEVICEAPISDEVICEV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum DEVICEAPISDEVICEV1RelayState_StateType

/** Тип состояния */
typedef GPB_ENUM(DEVICEAPISDEVICEV1RelayState_StateType) {
  /**
   * 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.
   **/
  DEVICEAPISDEVICEV1RelayState_StateType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  DEVICEAPISDEVICEV1RelayState_StateType_StateTypeUnknown = 0,

  /** Открыто временно */
  DEVICEAPISDEVICEV1RelayState_StateType_OpenTemporary = 1,

  /** Закрыто */
  DEVICEAPISDEVICEV1RelayState_StateType_Closed = 2,

  /** Открыто на всегда */
  DEVICEAPISDEVICEV1RelayState_StateType_OpenPermanent = 3,
};

GPBEnumDescriptor *DEVICEAPISDEVICEV1RelayState_StateType_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 DEVICEAPISDEVICEV1RelayState_StateType_IsValidValue(int32_t value);

#pragma mark - Enum DEVICEAPISDEVICEV1RelayOpen_LockType

/** Тип замка */
typedef GPB_ENUM(DEVICEAPISDEVICEV1RelayOpen_LockType) {
  /**
   * 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.
   **/
  DEVICEAPISDEVICEV1RelayOpen_LockType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  DEVICEAPISDEVICEV1RelayOpen_LockType_LockTypeUnknown = 0,

  /** Электромагнитный (state_operation) */
  DEVICEAPISDEVICEV1RelayOpen_LockType_Electromagnetic = 1,

  /** Электромеханический (pulse_operation) */
  DEVICEAPISDEVICEV1RelayOpen_LockType_Electromechanical = 2,
};

GPBEnumDescriptor *DEVICEAPISDEVICEV1RelayOpen_LockType_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 DEVICEAPISDEVICEV1RelayOpen_LockType_IsValidValue(int32_t value);

#pragma mark - DEVICEAPISDEVICEV1DeviceapisDeviceRelayV1Root

/**
 * 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 DEVICEAPISDEVICEV1DeviceapisDeviceRelayV1Root : GPBRootObject
@end

#pragma mark - DEVICEAPISDEVICEV1PostRelayCloseRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayCloseRequest_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayCloseRequest_FieldNumber_RelayIndex = 1,
};

/**
 * Запрос закрытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayCloseRequest : GPBMessage

/**
 * Индекс реле.
 * Диапазон: 1..32767
 **/
@property(nonatomic, readwrite) int32_t relayIndex;

@end

#pragma mark - DEVICEAPISDEVICEV1PostRelayCloseResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayCloseResponse_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayCloseResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayCloseResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1PostRelayCloseResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1PostRelayCloseResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос закрытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayCloseResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1PostRelayCloseResponse_Type_OneOfCase typeOneOfCase;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1PostRelayCloseResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1PostRelayCloseResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1PostRelayCloseResponse *message);

#pragma mark - DEVICEAPISDEVICEV1PostRelayCloseResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса закрытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayCloseResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1PostRelayCloseResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1PostRelayCloseResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1PostRelayOpenPermanentlyRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyRequest_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyRequest_FieldNumber_RelayIndex = 1,
};

/**
 * Запрос открытия реле без дальнейшего закрытия
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayOpenPermanentlyRequest : GPBMessage

/**
 * Индекс реле.
 * Диапазон: 1..32767
 **/
@property(nonatomic, readwrite) int32_t relayIndex;

@end

#pragma mark - DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос открытия реле без дальнейшего закрытия
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Type_OneOfCase typeOneOfCase;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse *message);

#pragma mark - DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса открытия реле без дальнейшего закрытия
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1PostRelayOpenPermanentlyResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1PostRelayOpenRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenRequest_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayOpenRequest_FieldNumber_RelayIndex = 1,
  DEVICEAPISDEVICEV1PostRelayOpenRequest_FieldNumber_CurrentOpenTime = 2,
};

/**
 * Запрос открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayOpenRequest : GPBMessage

/**
 * Индекс реле.
 * Диапазон: 1..32767
 **/
@property(nonatomic, readwrite) int32_t relayIndex;

/**
 * Задержка в секундах.
 * Если не передано, используется установленное значение времени открытия из настроек.
 * Диапазон: 1..200
 **/
@property(nonatomic, readwrite) int32_t currentOpenTime;

@end

#pragma mark - DEVICEAPISDEVICEV1PostRelayOpenResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenResponse_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayOpenResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1PostRelayOpenResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1PostRelayOpenResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayOpenResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1PostRelayOpenResponse_Type_OneOfCase typeOneOfCase;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1PostRelayOpenResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1PostRelayOpenResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1PostRelayOpenResponse *message);

#pragma mark - DEVICEAPISDEVICEV1PostRelayOpenResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1PostRelayOpenResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1PostRelayOpenResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1PostRelayOpenResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1EditRelayPropsOpenRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsOpenRequest_FieldNumber) {
  DEVICEAPISDEVICEV1EditRelayPropsOpenRequest_FieldNumber_Data_p = 1,
  DEVICEAPISDEVICEV1EditRelayPropsOpenRequest_FieldNumber_UpdateMask = 2,
};

/**
 * Запрос редактирования настроек открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1EditRelayPropsOpenRequest : GPBMessage

/** Настройки реле */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1RelayOpen *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

/** Маска полей обновления */
@property(nonatomic, readwrite, strong, null_resettable) GPBFieldMask *updateMask;
/** Test to see if @c updateMask has been set. */
@property(nonatomic, readwrite) BOOL hasUpdateMask;

@end

#pragma mark - DEVICEAPISDEVICEV1EditRelayPropsDtmfRequest

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsDtmfRequest_FieldNumber) {
  DEVICEAPISDEVICEV1EditRelayPropsDtmfRequest_FieldNumber_Data_p = 1,
  DEVICEAPISDEVICEV1EditRelayPropsDtmfRequest_FieldNumber_UpdateMask = 2,
};

/**
 * Запрос на установку настроек DTMF реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1EditRelayPropsDtmfRequest : GPBMessage

/** Настройки DTMF реле */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1RelayDtmf *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

/** Маска полей обновления */
@property(nonatomic, readwrite, strong, null_resettable) GPBFieldMask *updateMask;
/** Test to see if @c updateMask has been set. */
@property(nonatomic, readwrite) BOOL hasUpdateMask;

@end

#pragma mark - DEVICEAPISDEVICEV1EditRelayPropsOpenResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_FieldNumber) {
  DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос на установку настроек открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1EditRelayPropsOpenResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Type_OneOfCase typeOneOfCase;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1EditRelayPropsOpenResponse *message);

#pragma mark - DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса на установку настроек открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1EditRelayPropsOpenResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_FieldNumber) {
  DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Type_OneOfCase) {
  DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос на установку настроек DTMF
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Type_OneOfCase typeOneOfCase;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error *error;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_ClearTypeOneOfCase(DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse *message);

#pragma mark - DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_FieldNumber) {
  DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_Reason_OneOfCase) {
  DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса на установку настроек DTMF
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) DEVICEAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error_ClearReasonOneOfCase(DEVICEAPISDEVICEV1EditRelayPropsDtmfResponse_Error *message);

#pragma mark - DEVICEAPISDEVICEV1GetRelayStatusListRequest

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

@end

#pragma mark - DEVICEAPISDEVICEV1RelayState

typedef GPB_ENUM(DEVICEAPISDEVICEV1RelayState_FieldNumber) {
  DEVICEAPISDEVICEV1RelayState_FieldNumber_RelayIndex = 1,
  DEVICEAPISDEVICEV1RelayState_FieldNumber_StateType = 2,
};

/**
 * Состояние реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1RelayState : GPBMessage

/**
 * Индекс реле.
 * Диапазон: 1..32767
 **/
@property(nonatomic, readwrite) int32_t relayIndex;

/** Состояние */
@property(nonatomic, readwrite) DEVICEAPISDEVICEV1RelayState_StateType stateType;

@end

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

#pragma mark - DEVICEAPISDEVICEV1GetRelayStatusListResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetRelayStatusListResponse_FieldNumber) {
  DEVICEAPISDEVICEV1GetRelayStatusListResponse_FieldNumber_DataArray = 1,
};

/**
 * Ответ на запрос получения статусов реле устройства
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetRelayStatusListResponse : GPBMessage

/** Список состояний реле */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1RelayState*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - DEVICEAPISDEVICEV1GetRelayOpenListRequest

/**
 * Запрос получения настроек открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetRelayOpenListRequest : GPBMessage

@end

#pragma mark - DEVICEAPISDEVICEV1GetRelayDtmfListRequest

/**
 * Запрос получения настроек DTMF реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1GetRelayDtmfListRequest : GPBMessage

@end

#pragma mark - DEVICEAPISDEVICEV1RelayOpen

typedef GPB_ENUM(DEVICEAPISDEVICEV1RelayOpen_FieldNumber) {
  DEVICEAPISDEVICEV1RelayOpen_FieldNumber_RelayIndex = 1,
  DEVICEAPISDEVICEV1RelayOpen_FieldNumber_LockType = 2,
  DEVICEAPISDEVICEV1RelayOpen_FieldNumber_OpenTimeGeneral = 3,
  DEVICEAPISDEVICEV1RelayOpen_FieldNumber_OpenTimeEmergency = 4,
};

/**
 * Настройки открытия реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1RelayOpen : GPBMessage

/**
 * Индекс реле.
 * Диапазон: 1..32767
 **/
@property(nonatomic, readwrite) int32_t relayIndex;

/** Тип замка */
@property(nonatomic, readwrite) DEVICEAPISDEVICEV1RelayOpen_LockType lockType;

/**
 * Общее время открытия.
 * Диапазон: 1..200
 **/
@property(nonatomic, readwrite) int32_t openTimeGeneral;

/**
 * Время открытия в секундах при экстренном оповещении.
 * При 0 - до конца экстренного оповещения.
 * Диапазон: 0..3600
 **/
@property(nonatomic, readwrite) int32_t openTimeEmergency;

@end

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

#pragma mark - DEVICEAPISDEVICEV1GetRelayOpenListResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetRelayOpenListResponse_FieldNumber) {
  DEVICEAPISDEVICEV1GetRelayOpenListResponse_FieldNumber_DataArray = 1,
};

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

/** Настройки открытия реле */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1RelayOpen*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - DEVICEAPISDEVICEV1RelayDtmf

typedef GPB_ENUM(DEVICEAPISDEVICEV1RelayDtmf_FieldNumber) {
  DEVICEAPISDEVICEV1RelayDtmf_FieldNumber_RelayIndex = 1,
  DEVICEAPISDEVICEV1RelayDtmf_FieldNumber_DtmfCode = 2,
};

/**
 * Настройки DTMF реле
 **/
GPB_FINAL @interface DEVICEAPISDEVICEV1RelayDtmf : GPBMessage

/**
 * Индекс реле.
 * Диапазон: 1..32767
 **/
@property(nonatomic, readwrite) int32_t relayIndex;

/**
 * DTMF код.
 * Для разных реле допускается одинаковый DTMF код.
 * Один символ из 0,1,2,3,4,5,6,7,8,9,*,#
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *dtmfCode;

@end

#pragma mark - DEVICEAPISDEVICEV1GetRelayDtmfListResponse

typedef GPB_ENUM(DEVICEAPISDEVICEV1GetRelayDtmfListResponse_FieldNumber) {
  DEVICEAPISDEVICEV1GetRelayDtmfListResponse_FieldNumber_DataArray = 1,
};

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

/** Настройки DTMF реле */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<DEVICEAPISDEVICEV1RelayDtmf*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
