| // Copyright 2017 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; |
| |
| // Specifies the access scope a given component has to services within Maxwell. |
| // |
| // TODO(thatguy): Eventually, replace this with a Fuchsia-level access scope. |
| union ComponentScope { |
| // Reserved for system-level services. |
| GlobalScope global_scope; |
| // Scope for a specific Module instance within a specific Story. |
| ModuleScope module_scope; // Annoying: can't use "module" (it's reserved) |
| // Scope for a specific Agent. Agents are not tied to a specific story. |
| AgentScope agent_scope; |
| // Scope for a specific Story, potentially containing several Module instances. |
| StoryScope story_scope; |
| }; |
| |
| struct GlobalScope { |
| uint32 dummy; // FIDL does not allow empty structs |
| }; |
| |
| struct ModuleScope { |
| string url; |
| string story_id; |
| vector<string> module_path; |
| }; |
| |
| struct AgentScope { |
| string url; |
| }; |
| |
| struct StoryScope { |
| string story_id; |
| }; |