@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. notify @1 () -> ( notify :Notifyable ); # NULL if the user does not have permission to read this resource, or if # this resource is not notifiable interest @2 () -> ( interest :Interestable ); # NULL if this resource is not interestable or the user does not have # permission to set interests for this resource. claim @3 () -> ( claim :Claimable ); # NULL if the user does not have permission to write to this resource, or if # this resource is not (ever!) claimable }