blob: 320d1381b1c93bcd2b26713633aa73c3142adc30 [file] [log] [blame] [edit]
// Copyright 2018 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;
package dlcservice;
option go_package = "go.chromium.org/chromiumos/system_api/dlcservice_proto";
// This is the message that is passed into installation
message InstallRequest {
// The unique ID of the DLC.
string id = 1;
// The omaha URL to download from.
// This field is optional.
string omaha_url = 2;
// The DLC will reserve space on installation success/failure.
// This field is optional.
bool reserve = 3;
// Temporary flags, put at end of 2-byte boundary to avoid collisions with
// long-term values.
// Deprecated. Use DLC_FORCE_OTA via ebuilds.
bool force_ota = 2047 [deprecated = true];
}
// DLCs that have the selected manifest fields set to true.
message SelectDlc {
bool user_tied = 1;
bool scaled = 2;
}
// This is the message that is passed into unload.
message UnloadRequest {
oneof DlcInfo {
// Specify a DLC by ID.
string id = 1;
// Select DLCs that have any of the given manifest fields.
SelectDlc select = 2;
}
}
// This is the message that is passed to methods for listing DLCs.
message ListRequest {
// Check mount point instead rely on the state kept by dlcservice.
bool check_mount = 1;
// Select DLCs base on manifest fields.
SelectDlc select = 2;
}
// This message is used to query the DLCs that have data on disk. This allows
// Chrome UI to show this list to the users and users can decide whether to
// delete unused DLCs or not.
message DlcsWithContent {
message DlcInfo {
// The unique ID of the DLC.
string id = 1;
// The human readable name of the DLC.
string name = 2;
// The human readable description of the DLC.
string description = 3;
// The amount of disk space used by this DLC (bytes).
uint64 used_bytes_on_disk = 4;
// True if the DLC can be purged by anyone other than its users.
bool is_removable = 5;
}
// The list of DLCs that have used disk space.
repeated DlcInfo dlc_infos = 1;
}
// This is the message that is returned from DLC Service via |GetState| method
// and indicates what state a DLC is in.
// TODO(crbug.com/1056269): Propagate error code as well to know reason for
// failure when state is |NOT_INSTALLED|.
message DlcState {
// Indicates what state a DLC is in.
enum State {
NOT_INSTALLED = 0;
INSTALLING = 1;
INSTALLED = 2;
}
State state = 1;
// The unique identifier of a DLC.
string id = 2;
// The path that DLC user can access their content. This path is available
// only when the state is INSTALLED.
string root_path = 3;
// The progress of installation. The value is between 0.0 and 1.0.
double progress = 4;
// The last error code happened on for this DLC.
// Should only be dlcservice error codes from
// system_api/dbus/dlcservice/dbus-constants.h file.
string last_error_code = 5;
// Indicates whether DLC is marked verified. Can be used to determine
// whether DLC is available on disk and can be mounted immediately.
bool is_verified = 6;
// The location where the active DLC image is stored (if installed).
string image_path = 7;
}
// This is the message that is returned from DLC Service via |GetInstalled|
// method.
message DlcStateList {
repeated DlcState states = 1;
}