blob: 8fa388a3a307810b4def788c401ec4a572f44067 [file] [log] [blame]
// Copyright 2019 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";
option optimize_for = LITE_RUNTIME;
option go_package = "go.chromium.org/chromiumos/system_api/update_engine_proto";
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;
CLEANUP_PREVIOUS_UPDATE = 11;
UPDATED_BUT_DEFERRED = 12;
// 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;
}
// Keep in sync with:
// update_engine/client_library/include/update_engine/update_status.h
enum UpdateUrgency {
REGULAR = 0;
CRITICAL = 1;
}
enum UpdateDoneAction {
REBOOT = 0;
SHUTDOWN = 1;
}
// This is the message transferred from other processes to update_engine for
// configuring the behavior of applying the deferred update.
message ApplyUpdateConfig {
// The action to take after applying the deferred update.
UpdateDoneAction done_action = 1;
}
message Feature {
// The name of the feature.
string name = 1;
// Whether the feature is enabled or not.
bool enabled = 2;
}
// 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;
// The last update/install attempt error.
// Reference update_engine/dbus-constants.h for the errors that update_engine
// will propagate into this field.
int32 last_attempt_error = 10;
// If true, the update is critical. DEPRECATED.
// bool critical_update = 11;
// Indicates how important an update is.
UpdateUrgency update_urgency = 12;
// List of features managed by update_engine.
repeated Feature features = 13;
// Whether the update is interactive.
bool is_interactive = 14;
// If true, the update will be downloaded but deferred.
bool will_defer_update = 15;
// The extended date of the device in the number of days since Unix Epoch.
int64 extended_date = 16;
// The extended opt in requirement for the device.
bool extended_opt_in_required = 17;
}
// This is the message flags that influences how updates are performed.
message UpdateFlags {
// Indicates if the update is interactive or not.
bool non_interactive = 1;
}
// This is the message transferred into update_engine to perform updates in a
// certain manner.
message UpdateParams {
// Version to update to. An empty string indicates that update engine should
// pick the most recent image on the current channel.
string app_version = 1;
// The omaha URL to force. Usually leave empty.
// Force update engine to look for updates from the given server. An empty
// string indicates update engine should get this parameter from the release
// file. This field will be ignored in production builds for security.
string omaha_url = 2;
// Additional fields that update_engine keeps track of during update requests.
UpdateFlags update_flags = 3;
// Checks for an update, but does not apply it.
bool skip_applying = 4;
// Forces a fw update with OS update.
bool force_fw_update = 5;
}
message InstallParams {
// ID of the DLC to install.
string id = 1;
// The Omaha URL to use. See `UpdateParams::omaha_url` for details.
string omaha_url = 2;
// Boolean indicating whether or not the DLC is scaled.
bool scaled = 3;
// Boolean indicating forced OTA installations.
bool force_ota = 4;
}