api.fabaccess-api/resource.capnp

42 lines
1.4 KiB
Cap'n Proto
Raw Normal View History

2021-10-01 20:06:06 +02:00
@0x8c2f829df1930cd5;
using CSharp = import "programming_language/csharp.capnp";
$CSharp.namespace("FabAccessAPI.Schema");
using import "persistent.capnp".Persistent;
2022-10-31 15:19:56 +01:00
using import "notify.capnp".Notifyable;
using import "interest.capnp".Interestable;
using import "claim.capnp".Claimable;
2021-10-01 20:06:06 +02:00
2022-10-31 15:19:56 +01:00
using import "utils.capnp".OID;
2022-10-31 15:19:56 +01:00
interface Resource extends (Persistent) {
2022-11-01 11:54:01 +01:00
# BFFH's smallest unit of a physical or abstract "thing". A resource can be as simple and
# physical as a table, as complex as a PCB production line or as abstract as "people with
# specific know-how are present".
2022-10-31 15:19:56 +01:00
type @0 () -> ( types :List(OID) );
2022-11-01 11:54:01 +01:00
# The 'type' of Resource. Each OID in the list specifies certain behaviours that this Resource
# follows.
2022-11-01 11:54:01 +01:00
describe @1 () -> Description;
# Return information about this resource. This information is usually rather static, but may
# change between calls.
2022-11-01 11:54:01 +01:00
notify @2 () -> ( notify :Notifyable );
# NULL if the user does not have permission to read this resource, or if this resource is not
# notifiable
interest @3 () -> ( interest :Interestable );
# NULL if this resource is not interestable or the user does not have permission to set
# interests for this resource.
claim @4 () -> ( claim :Claimable );
# NULL if the user does not have permission to write to this resource, or if this resource is
# not (ever!) claimable
}
struct Description {
2021-10-01 20:06:06 +02:00
}