api.fabaccess-api/machine.capnp

105 lines
2.5 KiB
Cap'n Proto
Raw Normal View History

2021-02-01 23:23:12 +01:00
@0x8c2f829df1930cd5;
using Rust = import "programming_language/rust.capnp";
$Rust.parentModule("schema");
using CSharp = import "programming_language/csharp.capnp";
$CSharp.namespace("FabAccessAPI.Schema");
using General = import "general.capnp";
using User = import "user.capnp".User;
using Space = import "space.capnp".Space;
struct Machine {
enum MachineState {
free @0;
inUse @1;
toCheck @2;
blocked @3;
disabled @4;
reserved @5;
totakeover @6;
2021-02-01 23:23:12 +01:00
}
2021-08-27 21:42:36 +02:00
struct MachineInfoExtended {
2021-08-29 11:51:37 +02:00
currentUser @0 :User;
lastUser @1 :User;
instructorUser @2 :User;
2021-02-01 23:23:12 +01:00
}
struct Reservation {
user @0 :User;
start @1: UInt64;
end @2: UInt64;
}
2021-12-05 16:38:15 +00:00
id @0 :Text;
2021-08-27 21:42:36 +02:00
space @1 :Space;
name @2 :Text;
description @3 :Text;
state @4 :MachineState;
manager @5:User;
2021-10-12 22:31:19 +00:00
wiki @13 :Text;
urn @14 :Text;
category @15 :Text;
2021-08-27 21:42:36 +02:00
info @6 :Info;
2021-02-01 23:23:12 +01:00
interface Info $CSharp.name("InfoInterface") {
2022-03-09 16:59:28 +01:00
getPropertyList @0 () -> ( propertyList :List(General.KeyValuePair) );
2021-02-01 23:23:12 +01:00
2022-03-09 16:59:28 +01:00
getReservationList @1 () -> ( reservationList :List(Reservation) );
2021-02-01 23:23:12 +01:00
}
2021-08-27 21:42:36 +02:00
use @7 :Use;
2021-02-01 23:23:12 +01:00
interface Use $CSharp.name("UseInterface") {
2021-02-03 19:06:14 +01:00
use @0 ();
2021-02-01 23:23:12 +01:00
2021-02-03 19:06:14 +01:00
reserve @1 ();
2021-02-01 23:23:12 +01:00
reserveto @2 (start :UInt64, end :UInt64);
}
2021-08-27 21:42:36 +02:00
inuse @8 :InUse;
2021-02-01 23:23:12 +01:00
interface InUse $CSharp.name("InUseInterface") {
giveBack @0 ();
2021-08-29 11:51:37 +02:00
sendRawData @1 (data :Data);
releasefortakeover @2 ();
2021-02-01 23:23:12 +01:00
}
takeover @9 :Takeover;
2022-03-12 00:00:05 +01:00
interface Takeover $CSharp.name("TakeoverInterface") {
2021-02-01 23:23:12 +01:00
accept @0 ();
reject @1 ();
}
2021-08-27 21:42:36 +02:00
check @10 :Check;
2021-02-01 23:23:12 +01:00
interface Check $CSharp.name("CheckInterface") {
check @0 ();
reject @1 ();
}
2021-08-27 21:42:36 +02:00
manage @11 :Manage;
2021-02-01 23:23:12 +01:00
interface Manage $CSharp.name("ManageInterface") {
2022-03-12 14:37:25 +01:00
getMachineInfoExtended @0 () -> MachineInfoExtended;
2022-03-09 16:59:28 +01:00
setProperty @1 (property :General.KeyValuePair);
removeProperty @2 (property :General.KeyValuePair);
2021-02-03 19:06:14 +01:00
2022-03-09 16:59:28 +01:00
forceUse @3 ();
forceFree @4 ();
2021-02-03 19:06:14 +01:00
2022-03-09 16:59:28 +01:00
forceTransfer @5 (user :User);
2021-02-03 19:06:14 +01:00
2022-03-09 16:59:28 +01:00
block @6 ();
disabled @7 ();
2021-02-01 23:23:12 +01:00
}
2021-08-27 21:42:36 +02:00
admin @12 :Admin;
2021-02-01 23:23:12 +01:00
interface Admin $CSharp.name("AdminInterface") {
forceSetState @0 ( state :MachineState );
forceSetUser @1 ( user :User );
getAdminPropertyList @2 () -> (propertyList :List(General.KeyValuePair));
setAdminProperty @3 (property :General.KeyValuePair);
2021-02-03 19:06:14 +01:00
removeAdminProperty @4 (property :General.KeyValuePair);
2021-02-01 23:23:12 +01:00
}
}