// Copyright 2023 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package lab;

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

// LabpackInput represents list of input parameters.
message LabpackInput {
  // Unit name represents some device setup against which running the task.
  string unit_name = 1;
  // Task name running against unit.
  string task_name = 2;
  // Enable recovery tells if recovery actions are enabled.
  bool enable_recovery = 3;
  // Update inventory tells if process ellow update inventory during execution.
  bool update_inventory = 4;
  // Admin service path to initialie local TLW.
  string admin_service = 5;
  // Inventory service path to initialie local TLW.
  string inventory_service = 6;
  // Do not use stepper during execution.
  bool no_stepper = 7;
  // Do not use metrics during execution.
  bool no_metrics = 9;
  // Custom configuration.
  string configuration = 8;
  // Namespace to use when fetching/updating DUT information
  string inventory_namespace = 10;
  // bbid is the buildbucket id of the task that invoked us, primarily intended
  // for the ile-de-france use case.
  string bbid = 11;
  // swarming_task_id is the ID of the swarming task.
  string swarming_task_id = 12;
  // Caller identifies who or what called labpack or caused it to be executed.
  // Prototypical examples include "test_runner.py" or "cros_test_runner".
  string caller = 13;
};

// LabpackResponse represents result of execution the task on unit.
message LabpackResponse {
  bool success = 1;
  // Tells what was the reason of failure.
  string fail_reason = 2;
};
