| // 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); |
| }; |