blob: 09bcedc05be0c58e8ca75c875ec2af4574331c07 [file] [log] [blame]
// Copyright 2016 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.modular;
// A service enabling Agents and Modules to contribute Proposals proactively to
// the Suggestion engine.
[Discoverable]
protocol ProposalPublisher {
// Includes the given |proposal| in the Next/Interruption channel from this
// publisher. Proposals are identified by |proposal.id|, and are namespaced by
// the component's ID and proposal channel (Query vs. Next/Interruption).
//
// If a Next/Interruption Proposal with the same id is already present, it is
// overwritten.
Propose(Proposal proposal);
// Removes the Proposal with the given ID from the Next/Interruption channel
// produced by this component.
Remove(string proposal_id);
// Includes the navigation request in the Navigation channel from this
// publisher. Navigation events are immediate and not tracked by any id.
// TODO(ejia): Replace with puppetmaster.
// EXPERIMENTAL
ProposeNavigation(NavigationAction navigation);
};