// Copyright 2019 The Chromium OS 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 = "proto3";

package test_platform.skylab_local_state;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_platform/skylab_local_state";

import "test_platform/skylab_local_state/common.proto";

// LoadRequest defines the input of `skylab_local_state load`.
message LoadRequest {
  Config config = 1;

  // DUT hostname.
  string dut_name = 3;

  // Swarming run ID. Used in the results directory name.
  string run_id = 4;

  // DUT ID, used in the name of the DUT state cache file.
  string dut_id = 5;

  // Test ID, used in the results directory name
  string test_id = 6;

  reserved 2;
  reserved "results_dir";
}

// LoadResponse defines the output of `skylab_local_state load`.
message LoadResponse {
  // What is currently installed on the DUT, e.g.
  // "cros-version": "reef-release/R77-12345.0.0".
  map<string, string> provisionable_labels = 1;

  // The path to the newly created directory containing the host info file.
  string results_dir = 2;

  reserved 3;
  reserved "async_results";
}
