api.fabaccess-api/machine.capnp

101 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;
}
2021-08-27 21:42:36 +02:00
struct MachineInfoExtended {
2021-08-29 11:51:37 +02:00
currentUser @0 :User;
transferUser @1 :User;
2021-02-01 23:23:12 +01:00
}
struct Reservation {
user @0 :User;
start @1: UInt64;
end @2: UInt64;
}
2021-08-27 21:42:36 +02:00
id @0 :General.UUID;
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;
2021-08-27 21:42:36 +02:00
info @6 :Info;
2021-02-01 23:23:12 +01:00
interface Info $CSharp.name("InfoInterface") {
getMachineInfoExtended @0 () -> ( machineInfoExtended :MachineInfoExtended, dummy :UInt8 = 0);
2021-02-01 23:23:12 +01:00
2021-08-26 23:52:36 +02:00
getPropertyList @1 () -> ( propertyList :List(General.KeyValuePair) );
2021-02-01 23:23:12 +01:00
2021-08-26 23:52:36 +02:00
getReservationList @2 () -> ( 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);
2021-02-01 23:23:12 +01:00
}
2021-08-27 21:42:36 +02:00
transfer @9 :Transfer;
2021-02-01 23:23:12 +01:00
interface Transfer $CSharp.name("TransferInterface") {
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") {
setProperty @0 (property :General.KeyValuePair);
2021-02-03 19:06:14 +01:00
removeProperty @1 (property :General.KeyValuePair);
forceUse @2 ();
forceFree @3 ();
forceTransfer @4 (user :User);
block @5 ();
disabled @6 ();
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
}
}