// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
// This is the main file of the caosdb.acm.v1alpha1 package.
syntax="proto3";
optionjava_multiple_files=true;
optionjava_package="org.caosdb.api.acm.v1alpha1";
packagecaosdb.acm.v1alpha1;
///////////////////////////////////////////
// COMMON STUFF
///////////////////////////////////////////
// Client preferences for the paging. The server MUST respect the index
// property or send the complete result set. The server MAY choose to send a
// different page length in the response
messagePagingRequest{
// Desired index of the first element in the response. The index depends on
// the order of the elements in the result set.
int32index=1;
// Desired length of the page in the server response.
int32page_length=2;
}
// The actual paging of the response.
messagePagingResponse{
// Total numbers of results.
int32total_number=1;
// Index of the first item in the page.
int32current_index=2;
}
///////////////////////////////////////////
// ROLE STUFF
///////////////////////////////////////////
// Role
messageRole{
// Unique name of this role.
stringname=1;
// Description of the purpose of this role or which group of users this role
// represents.
stringdescription=2;
// List of string permissions of this role.
repeatedstringstring_permissions=3;
}
// Request message for the ListRoles RPC
messageListRolesRequest{
// Desired paging settings for the response.
PagingRequestpaging=1;
}
// Response message for the ListRoles RPC
messageListRolesResponse{
// Actual paging setting of the response.
PagingResponsepaging=1;
// A subset (when paging is used) or the complete set (otherwise) of roles.
repeatedRoleroles=2;
}
// Request message for the <+TODO+> RPC
messageCreateSingleRoleRequest{}
// Response message for the <+TODO+> RPC
messageCreateSingleRoleResponse{}
// Request message for the <+TODO+> RPC
messageRetrieveSingleRoleRequest{}
// Response message for the <+TODO+> RPC
messageRetrieveSingleRoleResponse{}
// Request message for the <+TODO+> RPC
messageUpdateSingleRoleRequest{}
// Response message for the <+TODO+> RPC
messageUpdateSingleRoleResponse{}
// Request message for the <+TODO+> RPC
messageDeleteSingleRoleRequest{}
// Response message for the <+TODO+> RPC
messageDeleteSingleRoleResponse{}
///////////////////////////////////////////
// USER STUFF
///////////////////////////////////////////
// User
messageUser{
// Indicates whether the user is active. Only active users can sign in and
// interact with the CaosDB Server.
stringactive=1;
// Realm of this user. The realm is the authority which can authenticate this user, e.g. 'PAM' when the user is a (POSIX) user from the server's host, or 'CaosDB' when CaosDB Server itself can authenticate the user.
stringrealm=2;
// Name of this user.
stringname=3;
// Email of this user.
stringemail=4;
// The entity which represents this user (e.g. a Person or Device Record).
stringentity_id=5;
// List of roles of this user.
repeatedstringroles=6;
}
// Request message for the ListUsers RPC.
messageListUsersRequest{
// Desired paging settings for the response.
PagingRequestpaging=1;
}
// Response message for the ListUsers RPC.
messageListUsersResponse{
// Actual paging setting of the response.
PagingResponsepaging=1;
// A subset (when paging is used) or the complete set (otherwise) of known users.
repeatedUserusers=2;
}
// Request message for the <+TODO+> RPC
messageCreateSingleUserRequest{}
// Response message for the <+TODO+> RPC
messageCreateSingleUserResponse{}
// Request message for the <+TODO+> RPC
messageRetrieveSingleUserRequest{}
// Response message for the <+TODO+> RPC
messageRetrieveSingleUserResponse{}
// Request message for the <+TODO+> RPC
messageUpdateSingleUserRequest{}
// Response message for the <+TODO+> RPC
messageUpdateSingleUserResponse{}
// Request message for the <+TODO+> RPC
messageDeleteSingleUserRequest{}
// Response message for the <+TODO+> RPC
messageDeleteSingleUserResponse{}
///////////////////////////////////////////
// SERVICE DEFINITION
///////////////////////////////////////////
// A service for managing the access to the CaosDB Server via user accounts,