// 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";

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;
}
