// Copyright 2019 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

package dashboard;

import "lib/model/key.proto";

message Task {
    optional RootKey key = 1;
    optional RootKey commit_key = 2;
    optional int64 create_timestamp = 3;
    optional int64 start_timestamp = 4;
    optional int64 end_timestamp = 5;
    optional string name = 6;
    optional int32 attempts = 7;
    optional bool is_flaky = 8;
    optional int32 timeout_in_minutes = 9;
    optional string reason = 10;
    repeated string required_capabilities = 11;
    optional string reserved_for_agentId = 12;
    optional string stage_name = 13;
    optional string status = 14;
    optional int32 buildNumber = 15;
    optional string buildNumberList = 16;
    optional string builderName = 17;
    optional string luciBucket = 18;
    optional bool is_test_flaky = 19;
}
