syntax = "proto2";

message Job {
    message KeyVal {
        required string name = 1;
        required string value = 2;
    }

    message Kernel {
        required string base = 1;
        required string kernel_hash = 2;
    }

    message Iteration {
        required int64 index = 1;
        repeated KeyVal attr_keyval = 2;
        repeated KeyVal perf_keyval = 3;
    }

    message Test {
        required string subdir = 1;
        required string testname = 2;
        required string status = 3;
        required string reason = 4;
        required Kernel kernel = 5;
        required string machine = 6;
        required int64 started_time = 7;
        required int64 finished_time = 8;
        repeated Iteration iterations = 9;
        repeated KeyVal attributes = 10;
        repeated string labels = 11;
    }

    required string dir = 1;
    repeated Test tests = 2;
    required string user = 3;
    required string label = 4;
    required string tag = 5;
    required int64 queued_time = 6;
    required int64 started_time = 7;
    required int64 finished_time = 8;
    required string machine = 9;
    required string machine_owner = 10;
    required string machine_group = 11;
    required string aborted_by = 12;
    required int64 aborted_on = 13;
    required string afe_job_id = 14;
    repeated KeyVal keyval_dict = 15;
}