mirror of
https://gitlab.com/fabinfra/fabaccess/fabaccess-api.git
synced 2025-03-12 14:51:42 +01:00
43 lines
1.7 KiB
Cap'n Proto
43 lines
1.7 KiB
Cap'n Proto
@0xe89d197dcef9c49b;
|
|
|
|
using CSharp = import "programming_language/csharp.capnp";
|
|
$CSharp.namespace("FabAccessAPI.Schema");
|
|
|
|
using import "resource.capnp".Resource;
|
|
using import "resource.capnp".RestoredResource;
|
|
using import "claim.capnp".Claim;
|
|
using import "utils.capnp".SturdyRef;
|
|
using import "utils.capnp".Fallible;
|
|
using import "projects.capnp".Project;
|
|
using import "auth.capnp".Authentication;
|
|
|
|
interface Resources {
|
|
restore @0 () -> ( resources :List(RestoredResource) );
|
|
# Returns the list of valid claims the session owner of this `Resources` currently has.
|
|
|
|
list @1 () -> ( resources :List(Resource) );
|
|
# Returns all resources that the user can currently disclose.
|
|
|
|
getByName @2 ( name :Text ) -> ( resource :Resource , dummy :UInt8 );
|
|
# Returns a NULL capability if the resource doesn't exist or a user doesn't have read permission for that resource.
|
|
|
|
getByUrn @3 ( urn :Text ) -> ( resource :Resource );
|
|
# Returns a NULL capability if the resource doesn't exist or a user doesn't have read permission for that resource.
|
|
|
|
getByUrl @4 ( url :Text ) -> ( resource :Resource );
|
|
# Returns a NULL capability if the resource doesn't exist or a user doesn't have read permission for that resource.
|
|
|
|
acceptToken @5 ( token :SturdyRef, project :Project ) -> Fallible(Claim, AcceptTokenError);
|
|
|
|
acceptTokenSubstituteUser @7 ( token :SturdyRef, project :Project )
|
|
-> Fallible(Authentication(Claim), AcceptTokenError);
|
|
|
|
setAlias @6 ( original_resource_id :Text ) -> ( alias_id :Text );
|
|
# Replace any set alias for the given resource id with a newly generated
|
|
# random id. The new ID is returned as `alias_id`.
|
|
|
|
struct AcceptTokenError {
|
|
permissionDenied @0 :Void;
|
|
}
|
|
}
|