// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/telemetry_status/v1/keyapis_telemetry_status_device_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 KEYAPISTELEMETRYSTATUSV1DeviceStatus;
@class KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter;
@class KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType

/** Справочник типов статусов */
typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType) {
  /**
   * 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.
   **/
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /**
   * Значение не указано.
   * Проверка доступности не выполнялась
   **/
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType_StatusTypeUnknown = 0,

  /** Не доступен */
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType_Offline = 1,

  /** Доступен */
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType_Online = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType_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 KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType

/** Справочник типов значений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType) {
  /**
   * 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.
   **/
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType_OrderByTypeUnknown = 0,

  /** По дате проверки */
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType_CheckedAt = 1,

  /** По идентификатору */
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType_DeviceId = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType_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 KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType

/** Справочник типов направлений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType) {
  /**
   * 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.
   **/
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType_DirectionTypeUnknown = 0,

  /** От большего к меньшему */
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType_Desc = 1,

  /** От меньшего к большему */
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType_Asc = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType_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 KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISTELEMETRYSTATUSV1KeyapisTelemetryStatusDeviceV1Root

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

#pragma mark - KEYAPISTELEMETRYSTATUSV1DeviceStatus

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1DeviceStatus_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_FieldNumber_DeviceId = 1,
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_FieldNumber_Ip = 2,
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_FieldNumber_CheckedAt = 3,
  KEYAPISTELEMETRYSTATUSV1DeviceStatus_FieldNumber_StatusType = 4,
};

/**
 * Статус доступности устройства
 **/
GPB_FINAL @interface KEYAPISTELEMETRYSTATUSV1DeviceStatus : GPBMessage

/** Идентификатор устройства */
@property(nonatomic, readwrite) int32_t deviceId;

/** IP-адрес устройства */
@property(nonatomic, readwrite, copy, null_resettable) NSString *ip;

/** Момент проверки статуса */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *checkedAt;
/** Test to see if @c checkedAt has been set. */
@property(nonatomic, readwrite) BOOL hasCheckedAt;

/** Тип статуса */
@property(nonatomic, readwrite) KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType statusType;

@end

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

#pragma mark - KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter_FieldNumber_DeviceIdsArray = 1,
  KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter_FieldNumber_StatusTypesArray = 2,
};

/**
 * Фильтр для запроса статусов доступности устройств.
 * При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
 * При передаче нескольких разных параметров фильтра они работают в выборке через И
 **/
GPB_FINAL @interface KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter : GPBMessage

/** По списку приборов учета */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *deviceIdsArray;
/** The number of items in @c deviceIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceIdsArray_Count;

/** По cтатусам доступности */
// |statusTypesArray| contains |KEYAPISTELEMETRYSTATUSV1DeviceStatus_StatusType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *statusTypesArray;
/** The number of items in @c statusTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger statusTypesArray_Count;

@end

#pragma mark - KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_FieldNumber_OrderByType = 1,
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_FieldNumber_DirectionType = 2,
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_FieldNumber_Limit = 3,
  KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация статусов сетевой доступности
 **/
GPB_FINAL @interface KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging : GPBMessage

/**
 * Тип значения сортировки.
 * По умолчанию: CHECKED_AT
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_OrderByType orderByType;

/**
 * Тип направления сортировки.
 * По умолчанию: DESC
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging_DirectionType directionType;

/**
 * Количество записей на страницу.
 * Минимальное значение: 1.
 * Максимальное значение: 100.
 * По умолчанию: 20.
 * Если значение 0 (не передано), то выставляем значение по умолчанию
 **/
@property(nonatomic, readwrite) int32_t limit;

/**
 * Сдвиг.
 * По умолчанию: 0
 **/
@property(nonatomic, readwrite) int32_t offset;

@end

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

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

#pragma mark - KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_FieldNumber_Filter = 1,
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_Pagination_OneOfCase) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_Pagination_OneOfCase_Paging = 2,
};

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

/** Фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

/** Вариант разбиения на страницы */
@property(nonatomic, readonly) KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_Pagination_OneOfCase paginationOneOfCase;

/** Пагинация */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYSTATUSV1DeviceStatusPaging *paging;

@end

/**
 * Clears whatever value was set for the oneof 'pagination'.
 **/
void KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListRequest *message);

#pragma mark - KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse_Type_OneOfCase_Data_p = 1,
};

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

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYSTATUSV1GetDeviceStatusListResponse_Type_OneOfCase typeOneOfCase;

/** Статус доступности устройства */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYSTATUSV1DeviceStatus *data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountRequest

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountRequest_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountRequest_FieldNumber_Filter = 1,
};

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

/** Фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYSTATUSV1DeviceStatusFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse_FieldNumber) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse_Type_OneOfCase_Data_p = 1,
};

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

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYSTATUSV1GetDeviceStatusCountResponse_Type_OneOfCase typeOneOfCase;

/** Всего записей */
@property(nonatomic, readwrite) int32_t data_p;

@end

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

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
