api.fabaccess-api/notify.capnp
2022-11-01 11:54:01 +01:00

29 lines
1.1 KiB
Cap'n Proto

@0xc0787ef6e3cb87e1;
using CSharp = import "programming_language/csharp.capnp";
$CSharp.namespace("FabAccessAPI.Schema");
using import "state.capnp".State;
using import "state.capnp".Update;
interface Notifyable {
state @0 () -> ( state :State );
# Returns the current state of a resource.
subscribe @1 ( subscriber :Subscriber ) -> ( subscription :Subscription );
# Subscribe to state updates. The passed in `subscriber` is an interface implemented on the
# client side that a server calls to send update notifications.
}
interface Subscriber {
update @0 ( update :Update ) -> ();
# Called by a server when a new state was produced for this resource. This method MAY not be
# called when a resource was updated but did not change its state. A server will only ever have
# one running update call per client session, so a client can limit the rate of updates by not
# resolving this call immediately. A server will coalesce multiple updates into a single update
# notification, meaning a client is not guaranteed to receive every intermediary state for a
# resource.
}
interface Subscription { }