blob: 29da1e193d251cfbf358cbae2628b2ea047174e3 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.update.channelcontrol;
using fuchsia.update.channel;
/// Control the target update channel, this is the channel we will use on the next update check.
[Discoverable]
protocol ChannelControl {
compose fuchsia.update.channel.Provider;
/// Set a new desired target channel. This tells the updater to attempt to
/// check for updates using a new channel. This is tentative, and won't be
/// persisted unless an update check on that channel is successful.
///
/// A response is generated when the new target channel has been verified as
/// valid.
///
/// + request `channel` the new target channel name (name used by the updater)
SetTarget(string:128 channel) -> ();
/// Get the current tentative target channel for updates.
/// This returns the channel that the update client is using to perform update
/// checks. It's always one of:
/// - the current channel
/// - the default channel
/// - a new target that's different, but hasn't been OTA'd from yet.
///
/// - response `channel` the current target channel.
GetTarget() -> (string:128 channel);
/// Get the list of well-known target channels that can be passed to SetTarget().
/// There may be other, unlisted channels.
GetTargetList() -> (vector<string:128>:100 channels);
};