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