| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- syntax = "proto3";
- package chatto.api.v1;
- import "buf/validate/validate.proto";
- // Public role metadata used for rendering role mentions, labels, and catalogs.
- message Role {
- // Stable role name used in permission and assignment records.
- string name = 1;
- // Display name shown in user-facing role UIs.
- string display_name = 2;
- // Optional role description.
- string description = 3;
- // Whether this is a built-in role.
- bool is_system = 4;
- // Display/order position.
- int32 position = 5;
- // Whether messages may notify users assigned to this role.
- bool pingable = 6;
- }
- // Request the current role catalog.
- message ListRolesRequest {}
- // Snapshot of the role catalog visible to the authenticated viewer.
- message ListRolesResponse {
- // Roles sorted by position.
- repeated Role roles = 1;
- }
- // Request one public role by stable role name.
- message GetRoleRequest {
- // Required stable role name.
- string name = 1 [(buf.validate.field).string.min_len = 1];
- }
- // Public role lookup response.
- message GetRoleResponse {
- // Requested role.
- Role role = 1;
- }
- // Request public role records for a set of stable role names.
- message BatchGetRolesRequest {
- // Required role names. Unknown names are omitted from the response.
- repeated string names = 1 [(buf.validate.field).repeated = {
- min_items: 1
- max_items: 100
- items: {
- string: {min_len: 1}
- }
- }];
- }
- // Batch public role response.
- message BatchGetRolesResponse {
- // Found roles. The server preserves first-seen request order and
- // de-duplicates repeated names.
- repeated Role roles = 1;
- }
- // Provides authenticated reads for public role metadata.
- service RoleService {
- // Lists the current role catalog as a finite snapshot. Requires an
- // authenticated user.
- rpc ListRoles(ListRolesRequest) returns (ListRolesResponse);
- // Gets one public role by stable name. Returns NOT_FOUND when the role is
- // unknown.
- rpc GetRole(GetRoleRequest) returns (GetRoleResponse);
- // Gets public role records for multiple role names referenced by member rows,
- // mentions, or integration clients.
- rpc BatchGetRoles(BatchGetRolesRequest) returns (BatchGetRolesResponse);
- }
|