| // 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.app.discover; |
| |
| using fuchsia.modular; |
| using Query = string; |
| using SuggestionId = string; |
| |
| [Discoverable] |
| protocol Suggestions { |
| /// Sends a query to get suggestions and an iterator with which the client |
| /// can fetch suggestions coming as response. |
| GetSuggestions(Query query, request<SuggestionsIterator> iterator); |
| |
| /// Requests the execution of a suggestion's intent. |
| NotifyInteraction(SuggestionId suggestion_id, InteractionType interaction); |
| }; |
| |
| /// Supported types of interaction with a suggestion. |
| enum InteractionType { |
| /// Set when the suggestion was accepted by the user. |
| SELECTED = 0; |
| }; |
| |
| protocol SuggestionsIterator { |
| /// Fetches the next set of suggestions being iterated on. When there's no |
| /// more suggestions an empty vector will be sent and the connection will be |
| /// closed from the server. |
| Next() -> (vector<Suggestion> suggestions); |
| }; |
| |
| table Suggestion { |
| /// The id of the suggestion. This id is used when notifying an interaction. |
| 1: SuggestionId id; |
| |
| /// Display information about the suggestion. |
| 2: fuchsia.modular.DisplayInfo display_info; |
| }; |