@0xc71ee8fdf17f8372; using CSharp = import "programming_language/csharp.capnp"; $CSharp.namespace("FabAccessAPI.Schema"); using import "auth.capnp".Authentication; using import "auth.capnp".AuthSupported; using import "resources.capnp".Resources; using import "projects.capnp".TerminalProjects; using import "main.capnp".Version; interface TerminalBootstrap { getAPIVersion @0 () -> Version; # Returns the API version implemented by the server. As a client, you can compare this version with the local currentVersion. getServerRelease @1 () -> ( name :Text, release :Text ); # Returns the server implementation name and version/build number Designed only for human-facing # debugging output so should be informative over machine-readable. # Example: ("bffhd", "0.3.1-f397e1e [rustc 1.57.0 (f1edd0429 2021-11-29)]") getServerInfo @2 () -> ( spacename :Text, instanceurl :Text ); # Returns information about the server, which can be used to resolve MDNS to DNS and display the server name to the user. mechanisms @3 () -> AuthSupported; # Get a list of Mechanisms this server allows in this context. createSession @4 ( mechanism :Text, upgrade :Text ) -> ( authentication :Authentication(TerminalSession) ); } struct TerminalSession { resources @0 :Resources; projects @1 :TerminalProjects; users @2 :TerminalUsers; } interface TerminalUsers { }