1<?xml version="1.0" encoding="utf-8" ?>
2<!--
3  Copyright (C) 2019 The Android Open Source Project
4
5  Licensed under the Apache License, Version 2.0 (the "License");
6  you may not use this file except in compliance with the License.
7  You may obtain a copy of the License at
8
9       http://www.apache.org/licenses/LICENSE-2.0
10
11  Unless required by applicable law or agreed to in writing, software
12  distributed under the License is distributed on an "AS IS" BASIS,
13  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  See the License for the specific language governing permissions and
15  limitations under the License.
16!-->
17<node name="/org/chromium/UpdateEngine">
18  <interface name="org.chromium.UpdateEngineInterface">
19    <annotation name="org.freedesktop.DBus.GLib.CSymbol"
20                value="update_engine_service" />
21    <annotation name="org.freedesktop.DBus.GLib.ClientCSymbol"
22                value="update_engine_client" />
23    <method name="AttemptUpdate">
24      <arg type="s" name="app_version" direction="in" />
25      <arg type="s" name="omaha_url" direction="in" />
26    </method>
27    <!-- TODO(zeuthen,chromium:286399): Rename to AttemptUpdate and
28         update Chrome and other users of the AttemptUpdate() method
29         in lockstep.
30    -->
31    <method name="AttemptUpdateWithFlags">
32      <arg type="s" name="app_version" direction="in" />
33      <arg type="s" name="omaha_url" direction="in" />
34      <!-- See AttemptUpdateFlags enum in update_engine/dbus-constants.h. -->
35      <arg type="i" name="flags" direction="in" />
36    </method>
37    <method name="AttemptInstall">
38      <arg type="s" name="omaha_url" direction="in" />
39      <arg type="as" name="dlc_ids" direction="in">
40        <tp:docstring>
41          The list of DLC IDs that needs to be installed.
42        </tp:docstring>
43      </arg>
44    </method>
45    <method name="AttemptRollback">
46      <arg type="b" name="powerwash" direction="in" />
47    </method>
48    <method name="CanRollback">
49      <arg type="b" name="can_rollback" direction="out" />
50    </method>
51    <method name="ResetStatus">
52    </method>
53    <method name="SetDlcActiveValue">
54      <arg type="b" name="is_active" direction="in">
55        <tp:docstring>
56          If the DLC is being set to active or inactive.
57        </tp:docstring>
58      </arg>
59      <arg type="s" name="dlc_id" direction="in">
60        <tp:docstring>
61          The ID of the DLC module that will be set to active/inactive.
62        </tp:docstring>
63      </arg>
64    </method>
65    <method name="GetStatusAdvanced">
66      <arg type="ay" name="status" direction="out">
67        <tp:docstring>
68          The current status serialized in a protobuf.
69        </tp:docstring>
70        <annotation name="org.chromium.DBus.Argument.ProtobufClass"
71                    value="update_engine::StatusResult"/>
72      </arg>
73    </method>
74    <method name="RebootIfNeeded">
75    </method>
76    <method name="SetChannel">
77      <arg type="s" name="target_channel" direction="in" />
78      <arg type="b" name="is_powerwash_allowed" direction="in" />
79    </method>
80    <method name="GetChannel">
81      <arg type="b" name="get_current_channel" direction="in" />
82      <arg type="s" name="channel" direction="out" />
83    </method>
84    <method name="SetCohortHint">
85      <arg type="s" name="cohort_hint" direction="in" />
86    </method>
87    <method name="GetCohortHint">
88      <arg type="s" name="cohort_hint" direction="out" />
89    </method>
90    <method name="SetP2PUpdatePermission">
91      <annotation name="org.freedesktop.DBus.GLib.CSymbol"
92        value="update_engine_service_set_p2p_update_permission" />
93      <annotation name="org.freedesktop.DBus.GLib.ClientCSymbol"
94        value="update_engine_client_set_p2p_update_permission" />
95      <arg type="b" name="enabled" direction="in" />
96    </method>
97    <method name="GetP2PUpdatePermission">
98      <annotation name="org.freedesktop.DBus.GLib.CSymbol"
99        value="update_engine_service_get_p2p_update_permission" />
100      <annotation name="org.freedesktop.DBus.GLib.ClientCSymbol"
101        value="update_engine_client_get_p2p_update_permission" />
102      <arg type="b" name="enabled" direction="out" />
103    </method>
104    <method name="SetUpdateOverCellularPermission">
105      <arg type="b" name="allowed" direction="in" />
106    </method>
107    <method name="SetUpdateOverCellularTarget">
108      <arg type="s" name="target_version" direction="in" />
109      <arg type="x" name="target_size" direction="in" />
110    </method>
111    <method name="GetUpdateOverCellularPermission">
112      <arg type="b" name="allowed" direction="out" />
113    </method>
114    <method name="GetDurationSinceUpdate">
115      <arg type="x" name="usec_wallclock" direction="out" />
116    </method>
117    <signal name="StatusUpdateAdvanced">
118      <arg type="ay" name="status" direction="out">
119        <tp:docstring>
120          The current status serialized in a protobuf.
121        </tp:docstring>
122        <annotation name="org.chromium.DBus.Argument.ProtobufClass"
123                    value="update_engine::StatusResult"/>
124      </arg>
125    </signal>
126    <method name="GetPrevVersion">
127      <arg type="s" name="prev_version" direction="out" />
128    </method>
129    <method name="GetRollbackPartition">
130      <arg type="s" name="rollback_partition_name" direction="out" />
131    </method>
132    <method name="GetLastAttemptError">
133      <arg type="i" name="last_attempt_error" direction="out" />
134    </method>
135  </interface>
136</node>
137