blob: e13c42dfa782d75ec179d8aee91c94d8a70c517c [file] [log] [blame]
// Copyright 2025 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.component.internal;
using fuchsia.component.sandbox;
using fuchsia.component.decl;
/// A component's sandbox, which holds all of the capabilities that a component
/// has access to, can provide to the system, and makes available to its
/// children.
@available(added=HEAD)
type ComponentSandbox = resource table {
1: component_input fuchsia.component.sandbox.DictionaryRef;
2: component_output fuchsia.component.sandbox.DictionaryRef;
3: program_input fuchsia.component.sandbox.DictionaryRef;
4: program_output fuchsia.component.sandbox.DictionaryRef;
5: reserved fuchsia.component.sandbox.DictionaryRef;
6: capability_sourced fuchsia.component.sandbox.DictionaryRef;
7: declared_dictionaries fuchsia.component.sandbox.DictionaryRef;
8: child_inputs vector<ChildInput>;
9: collection_inputs vector<ChildInput>;
};
@available(added=HEAD)
type ChildInput = resource struct {
child_name fuchsia.component.decl.child_name;
child_input fuchsia.component.sandbox.DictionaryRef;
};
@discoverable(server="platform")
@available(added=HEAD)
open protocol ComponentSandboxRetriever {
flexible GetMySandbox() -> (ComponentSandbox);
};