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

option optimize_for = LITE_RUNTIME;

package update_engine;

// Keep in sync with:
// update_engine/client_library/include/update_engine/update_status.h
enum Operation {
  IDLE = 0;
  CHECKING_FOR_UPDATE = 1;
  UPDATE_AVAILABLE = 2;
  DOWNLOADING = 3;
  VERIFYING = 4;
  FINALIZING = 5;
  UPDATED_NEED_REBOOT = 6;
  REPORTING_ERROR_EVENT = 7;
  ATTEMPTING_ROLLBACK = 8;
  DISABLED = 9;
  NEED_PERMISSION_TO_UPDATE = 10;

  // ERROR is only used by Chrome and update_engine doesn't really use/set this
  // value as it is not the proper way to propagate errors. DO NOT use this
  // anywhere other than Chrome.
  // TODO(crbug.com/977320): Remove this from Chrome.
  ERROR = -1;
}

// This is the message transferred between update_engine and other processes
// about the current status of the update_engine. It is used either in
// |GetUpdateStatusAdvanced| DBus method or |StatusUpdateAdvanced| signal.
//
// NOTE: Keep this updated with:
// update_engine/client_library/include/update_engine/update_status.h
message StatusResult {
  // When the update_engine last checked for updates (time_t: seconds from Unix
  // epoch).
  int64 last_checked_time = 1;

  // The current progress (0.0f-1.0f).
  double progress = 2;

  // The current status/operation of the update_engine.
  Operation current_operation = 3;

  // The new product version.
  string new_version = 4;

  // The size of the update payload (bytes).
  int64 new_size = 5;

  // Whether the update is actually an enterprise rollback. The value is valid
  // only if the current_operation is passed |CHECKING_FOR_UPDATE|.
  bool is_enterprise_rollback = 6;

  // Indication of install for DLC(s).
  bool is_install = 7;

  // The end-of-life date of the device in the number of days since Unix Epoch.
  int64 eol_date = 8;

  // If true, the system will powerwash once the update is applied and the
  // system is rebooted. This value is reliable on |UPDATE_NEED_REBOOT|.
  bool will_powerwash_after_reboot = 9;
}
