/*
  Сервис реализует поток изменений ресурсов домена Телеметрии
*/
syntax = "proto3";

import "google/api/field_behavior.proto";

package keyapis.telemetry_control.v1;

option java_package = "ru.keyapis.telemetry_control.v1";
option java_outer_classname = "KeyapisTelemetryControlV1Proto";
option java_multiple_files = false;
option java_string_check_utf8 = true;
option go_package = "/keyapis_telemetry_control_v1";
option cc_enable_arenas = true;
option csharp_namespace = "Keyapis.TelemetryControl.V1";
option objc_class_prefix = "KEYAPISTELEMETRYCONTROLV1";
option php_namespace = "Keyapis\\TelemetryControl\\V1";
option ruby_package = "Keyapis::TelemetryControl::V1";
option optimize_for = LITE_RUNTIME;

// Параметры сбора показаний
message CollectorParams {
  // Справочник типов измерений
  enum SignType {
    // Значение не указано
    SIGN_TYPE_UNKNOWN = 0;
    // Абсолютный показатель
    ABSOLUTE_DS = 1;
    // Абсолютный расход ресурса
    ABSOLUTE_RC = 2;
    // Интервальный показатель состояния
    INTERVAL_DS = 3;
    // Интервальный расход ресурса
    INTERVAL_RC = 4;
    // Текущее состояние
    CURRENT_DS = 5;
    // Текущее состояние ресурса
    CURRENT_RS = 6;
    // Объём
    VOLUME = 7;
    // Параметр конфигурации
    PARAMETER = 8;
    // Флаг состояния
    FLAG = 9;
  }

  // Справочник типа архивности показаний.
  // Используется для указания за какой период произошло измерение
  enum ArchiveType {
    // Значение не указано
    ARCHIVE_TYPE_UNKNOWN = 0;
    // Текущие показания
    CURRENT = 1;
    // За 30 мин
    HALFHOUR = 2;
    // За час
    HOUR = 3;
    // За сутки
    DAY = 4;
    // За месяц
    MONTH = 5;
    // За год
    YEAR = 6;
  }
  // Дата в формате YYYYMMDD.
  // При пустой дате запускается на текущую дату
  string date = 1;
  // Тип архивности.
  // При отсутствии переданного значения, будут запрошены показания по всем возможным типам архивности
  ArchiveType archive_type = 2;
  // Tип измерений.
  // При отсутствии переданного значения, будут запрошены показания по всем возможным типам измерений
  SignType sign_type = 3;
}


// Сигнал на старт сбора показаний Enviro по всем домам, на указанную дату.
// Очередь key.telemetry_control.eic_all_fias_start_task
message EICAllFiasStartTask {
  // Параметры сбора показаний
  CollectorParams collector_params = 1 [(google.api.field_behavior) = REQUIRED];
}



