syntax = "proto3";
 
import "google/protobuf/timestamp.proto";
 
message BoolArray {
  repeated bool values = 1;
}
 
message Int16Array {
  repeated int32 values = 1;
}
 
message UInt16Array {
  repeated uint32 values = 1;
}
 
message Int32Array {
  repeated int32 values = 1;
}
 
message UInt32Array {
  repeated uint32 values = 1;
}
 
message Int64Array {
  repeated int64 values = 1;
}
 
message UInt64Array {
  repeated uint64 values = 1;
}
 
message FloatArray {
  repeated float values = 1;
}
 
message DoubleArray {
  repeated double values = 1;
}
 
message StringArray {
  repeated string values = 1;
}
 
message TimestampArray {
  repeated google.protobuf.Timestamp values = 1;
}
 
message Variable {
  string name = 1;
  oneof value {
    bool bool_value = 2;
    int32 int16_value = 3;
    uint32 uint16_value = 4;
    int32 int32_value = 5;
    uint32 uint32_value = 6;
    int64 int64_value = 7;
    uint64 uint64_value = 8;
    float float_value = 9;
    double double_value = 10;
    string string_value = 11;
    google.protobuf.Timestamp datetime_value = 12;
    NestedVariable nested_variable = 13;
    BoolArray bool_array = 14;
    Int16Array int16_array = 15;
    UInt16Array uint16_array = 16;
    Int32Array int32_array = 17;
    UInt32Array uint32_array = 18;
    Int64Array int64_array = 19;
    UInt64Array uint64_array = 20;
    FloatArray float_array = 21;
    DoubleArray double_array = 22;
    StringArray string_array = 23;
    TimestampArray datetime_array = 24;
    NestedVariableArray nested_variable_array = 25;
  }
}
 
message NestedVariable {
  Variable variable = 1;
}
 
message NestedVariableArray {
  repeated NestedVariable values = 1;
}
 
message DataMessage {
  google.protobuf.Timestamp timestamp = 1;
  repeated Variable variables = 2;
}