mirror of
https://gitlab.com/fabinfra/fabaccess/fabaccess-api.git
synced 2025-03-12 14:51:42 +01:00
41 lines
1.6 KiB
Cap'n Proto
41 lines
1.6 KiB
Cap'n Proto
@0x8c2f829df1930cd5;
|
|
|
|
using CSharp = import "programming_language/csharp.capnp";
|
|
$CSharp.namespace("FabAccessAPI.Schema");
|
|
|
|
using import "persistent.capnp".Persistent;
|
|
using import "notify.capnp".Notifyable;
|
|
using import "interest.capnp".Interestable;
|
|
using import "claim.capnp".Claimable;
|
|
|
|
using import "utils.capnp".OID;
|
|
|
|
interface Resource extends (Persistent) {
|
|
# 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".
|
|
|
|
type @0 () -> ( types :List(OID) );
|
|
# The 'type' of Resource. Each OID in the list specifies certain behaviours that this Resource
|
|
# follows.
|
|
|
|
describe @1 () -> Description;
|
|
# Return information about this resource. This information is usually rather static, but may
|
|
# change between calls.
|
|
|
|
caps @2 () -> ( notify :Notifyable, interest :Interestable, claim :Claimable, lock :Lockable );
|
|
# return the capabilities an user has for this resource.
|
|
# `notify`: NULL if the user does not have permission to read this resource, or if this resource
|
|
# is not notifiable
|
|
# `interest`: NULL if this resource is not interestable or the user does not have permission to
|
|
# set interests for this resource.
|
|
# `claim`: NULL if the user does not have permission to write to this resource, or if this
|
|
# resource type does not support claiming.
|
|
# `lock`: NULL if the user does not have permission to manage this resource, or if this resource
|
|
# type does not support claiming or locking.
|
|
}
|
|
|
|
struct Description {
|
|
|
|
}
|