blob: 83c1a43727918f9bfceb62ebec32790ec737604e [file] [log] [blame]
// Copyright 2021 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.sys2;
using fuchsia.component;
/// A protocol exposed in a component's hub to allow component tools
/// to resolve, bind, stop component manifests.
[Discoverable]
protocol LifecycleController {
/// Resolves the component designated by the provided relative moniker
/// relative to the component to which the protocol is scoped.
///
/// The function returns once the component successfully resolves, or the
/// operation fails.
Resolve(string:fuchsia.component.MAX_MONIKER_LENGTH moniker) -> () error fuchsia.component.Error;
/// Binds to the component designated by the provided relative moniker
/// relative to the component to which the protocol is scoped.
///
/// The function returns once the component is successfully bound, or the
/// operation fails.
Bind(string:fuchsia.component.MAX_MONIKER_LENGTH moniker) -> () error fuchsia.component.Error;
/// Stops the component designated by the provided relative moniker
/// relative to the component to which the protocol is scoped.
///
/// The function returns once the component successfully stops, or the
/// operation fails.
Stop(string:fuchsia.component.MAX_MONIKER_LENGTH moniker) -> () error fuchsia.component.Error;
};