blob: 1fdbc05c267e49d86f047218b1119d9b24336689 [file] [log] [blame]
// Copyright 2018 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.virtualization;
struct EnvironmentInfo {
// A globally unique identifier for this environment.
uint32 id;
// The string provided to |Manager.Create|.
string label;
// List of guests running in this environment.
vector<InstanceInfo> instances;
};
struct InstanceInfo {
// Context ID to use to address this guest for vsocket communications. This
// can also be used to uniquely identify a guest within an environment.
uint32 cid;
// The |label| string originally provided in the |LaunchInfo| structure
// or, if it was the null, the |url|
string label;
};
[Discoverable]
protocol Manager {
// Create a new environment in which guests can be launched.
//
// The |label| is a string that is used for diagnostic purposes, such as
// naming resources and dumping debug info.
Create(string? label, request<Realm> env);
// Query for existing guest environments.
//
// This is intended for diagnostic purposes only.
List() -> (vector<EnvironmentInfo> env_infos);
// Connect to a currently running guest environment identified by |id|. The
// |id| can be found via a call to |List|.
//
// This is intended for diagnostic purposes only.
Connect(uint32 id, request<Realm> env);
};