.. # # This file is a part of the CaosDB Project. # # Copyright (C) 2021 Timm Fitschen # Copyright (C) 2021 IndiScale GmbH # # 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 . # # .. _package_caosdb.acm.v1alpha1: ####################################### caosdb.acm.v1alpha1 ####################################### .. toctree:: :hidden: .. _ref_caosdb/acm/v1alpha1/main.proto: caosdb/acm/v1alpha1/main.proto ================================================================== This is the main file of the caosdb.acm.v1alpha1 package. .. _ref_caosdb.acm.v1alpha1.CreateSingleRoleRequest: CreateSingleRoleRequest ------------------------------------------------------------------ Request message for the CreateSingleRole RPC .. csv-table:: CreateSingleRoleRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "role", ":ref:`Role`", "", "The new role." .. _ref_caosdb.acm.v1alpha1.CreateSingleRoleResponse: CreateSingleRoleResponse ------------------------------------------------------------------ Response message for the CreateSingleRole RPC .. _ref_caosdb.acm.v1alpha1.CreateSingleUserRequest: CreateSingleUserRequest ------------------------------------------------------------------ Request message for the CreateSingleUser RPC .. csv-table:: CreateSingleUserRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "user", ":ref:`User`", "", "The new user." "password_setting", ":ref:`PasswordSetting`", "", "The new password." .. _ref_caosdb.acm.v1alpha1.CreateSingleUserResponse: CreateSingleUserResponse ------------------------------------------------------------------ Response message for the CreateSingleUser RPC .. _ref_caosdb.acm.v1alpha1.DeleteSingleRoleRequest: DeleteSingleRoleRequest ------------------------------------------------------------------ Request message for the DeleteSingleRole RPC .. csv-table:: DeleteSingleRoleRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "name", ":ref:`string`", "", "the name of the role." .. _ref_caosdb.acm.v1alpha1.DeleteSingleRoleResponse: DeleteSingleRoleResponse ------------------------------------------------------------------ Response message for the DeleteSingleRole RPC .. _ref_caosdb.acm.v1alpha1.DeleteSingleUserRequest: DeleteSingleUserRequest ------------------------------------------------------------------ Request message for the DeleteSingleUser RPC .. csv-table:: DeleteSingleUserRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "realm", ":ref:`string`", "", "The user's realm" "name", ":ref:`string`", "", "The user's name" .. _ref_caosdb.acm.v1alpha1.DeleteSingleUserResponse: DeleteSingleUserResponse ------------------------------------------------------------------ Response message for the DeleteSingleUser RPC .. _ref_caosdb.acm.v1alpha1.EmailSetting: EmailSetting ------------------------------------------------------------------ EmailSetting - it is handy to have this as a separate message b/c otherwise we could not distinguish between empty string and an unspecified email. .. csv-table:: EmailSetting type fields :header: "Field", "Type", "Label", "Description" :widths: auto "email", ":ref:`string`", "", "The email adress" .. _ref_caosdb.acm.v1alpha1.EntitySetting: EntitySetting ------------------------------------------------------------------ EntitySetting - it is handy to have this as a separate message b/c otherwise we could not distinguish between empty string and an unspecified entity. .. csv-table:: EntitySetting type fields :header: "Field", "Type", "Label", "Description" :widths: auto "entity_id", ":ref:`string`", "", "The entity which represents this user (e.g. a Person or Device Record)." .. _ref_caosdb.acm.v1alpha1.ListKnownPermissionsRequest: ListKnownPermissionsRequest ------------------------------------------------------------------ Request to list all known permissions (excluding entity permissions). .. _ref_caosdb.acm.v1alpha1.ListKnownPermissionsResponse: ListKnownPermissionsResponse ------------------------------------------------------------------ Response with all known permissions. Clients may choose to create drop-down menues from this list. .. csv-table:: ListKnownPermissionsResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto "permissions", ":ref:`PermissionDescription`", "repeated", "known permissions" .. _ref_caosdb.acm.v1alpha1.ListRoleItem: ListRoleItem ------------------------------------------------------------------ Combines role, the role's capabilities and the current users permissions. .. csv-table:: ListRoleItem type fields :header: "Field", "Type", "Label", "Description" :widths: auto "role", ":ref:`Role`", "", "Role" "permissions", ":ref:`RolePermissions`", "repeated", "The permissions of the user of the current session w.r.t. this role." "capabilities", ":ref:`RoleCapabilities`", "repeated", "What can be done with this role." .. _ref_caosdb.acm.v1alpha1.ListRolesRequest: ListRolesRequest ------------------------------------------------------------------ Request message for the ListRoles RPC .. csv-table:: ListRolesRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "paging", ":ref:`PagingRequest`", "", "Desired paging settings for the response." .. _ref_caosdb.acm.v1alpha1.ListRolesResponse: ListRolesResponse ------------------------------------------------------------------ Response message for the ListRoles RPC .. csv-table:: ListRolesResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto "paging", ":ref:`PagingResponse`", "", "Actual paging setting of the response." "roles", ":ref:`ListRoleItem`", "repeated", "A subset (when paging is used) or the complete set (otherwise) of roles." .. _ref_caosdb.acm.v1alpha1.ListUsersRequest: ListUsersRequest ------------------------------------------------------------------ Request message for the ListUsers RPC. .. csv-table:: ListUsersRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "paging", ":ref:`PagingRequest`", "", "Desired paging settings for the response." .. _ref_caosdb.acm.v1alpha1.ListUsersResponse: ListUsersResponse ------------------------------------------------------------------ Response message for the ListUsers RPC. .. csv-table:: ListUsersResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto "paging", ":ref:`PagingResponse`", "", "Actual paging setting of the response." "users", ":ref:`User`", "repeated", "A subset (when paging is used) or the complete set (otherwise) of known users." .. _ref_caosdb.acm.v1alpha1.PagingRequest: PagingRequest ------------------------------------------------------------------ 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 .. csv-table:: PagingRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "index", ":ref:`int32`", "", "Desired index of the first element in the response. The index depends on the order of the elements in the result set." "page_length", ":ref:`int32`", "", "Desired length of the page in the server response." .. _ref_caosdb.acm.v1alpha1.PagingResponse: PagingResponse ------------------------------------------------------------------ The actual paging of the response. .. csv-table:: PagingResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto "total_number", ":ref:`int32`", "", "Total numbers of results." "current_index", ":ref:`int32`", "", "Index of the first item in the page." .. _ref_caosdb.acm.v1alpha1.PasswordSetting: PasswordSetting ------------------------------------------------------------------ PasswordSetting - it is handy to have this as a separate message b/c otherwise we could not distinguish between empty string and an unspecified password. .. csv-table:: PasswordSetting type fields :header: "Field", "Type", "Label", "Description" :widths: auto "password", ":ref:`string`", "", "The password" .. _ref_caosdb.acm.v1alpha1.PermissionDescription: PermissionDescription ------------------------------------------------------------------ Description of a permission. .. csv-table:: PermissionDescription type fields :header: "Field", "Type", "Label", "Description" :widths: auto "permission", ":ref:`string`", "", "The permission" "description", ":ref:`string`", "", "The description" .. _ref_caosdb.acm.v1alpha1.PermissionRule: PermissionRule ------------------------------------------------------------------ PermissionRule. These belong to Roles. .. csv-table:: PermissionRule type fields :header: "Field", "Type", "Label", "Description" :widths: auto "permission", ":ref:`string`", "", "The permission which is being granted oder denied." "priority", ":ref:`bool`", "", "Priority permission rules (TRUE) overrule non-priority (FALSE) permission rules." "grant", ":ref:`bool`", "", "True means that the permission is being granted by this rule, false means the permission is being DENIED!" .. _ref_caosdb.acm.v1alpha1.RetrieveSingleRoleRequest: RetrieveSingleRoleRequest ------------------------------------------------------------------ Request message for the RetrieveSingleRole RPC .. csv-table:: RetrieveSingleRoleRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "name", ":ref:`string`", "", "the name of the role." .. _ref_caosdb.acm.v1alpha1.RetrieveSingleRoleResponse: RetrieveSingleRoleResponse ------------------------------------------------------------------ Response message for the RetrieveSingleRole RPC .. csv-table:: RetrieveSingleRoleResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto "role", ":ref:`Role`", "", "The role." "users", ":ref:`User`", "repeated", "Known users with this role" "permissions", ":ref:`RolePermissions`", "repeated", "The permissions of the user of the current session w.r.t. this role." "capabilities", ":ref:`RoleCapabilities`", "repeated", "What can be do with this role." .. _ref_caosdb.acm.v1alpha1.RetrieveSingleUserRequest: RetrieveSingleUserRequest ------------------------------------------------------------------ Request message for the RetrieveSingleUser RPC .. csv-table:: RetrieveSingleUserRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "realm", ":ref:`string`", "", "The user's realm" "name", ":ref:`string`", "", "The user's name" .. _ref_caosdb.acm.v1alpha1.RetrieveSingleUserResponse: RetrieveSingleUserResponse ------------------------------------------------------------------ Response message for the RetrieveSingleUser RPC .. csv-table:: RetrieveSingleUserResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto "user", ":ref:`User`", "", "The user" "permissions", ":ref:`UserPermissions`", "repeated", "The permissions of the user of the current session." "capabilities", ":ref:`UserCapabilities`", "repeated", "What can be done with this user" .. _ref_caosdb.acm.v1alpha1.Role: Role ------------------------------------------------------------------ Role .. csv-table:: Role type fields :header: "Field", "Type", "Label", "Description" :widths: auto "name", ":ref:`string`", "", "Unique name of this role." "description", ":ref:`string`", "", "Description of the purpose of this role or which group of users this role represents." "permission_rules", ":ref:`PermissionRule`", "repeated", "List of permission rules for this role." .. _ref_caosdb.acm.v1alpha1.UpdateSingleRoleRequest: UpdateSingleRoleRequest ------------------------------------------------------------------ Request message for the UpdateSingleRole RPC .. csv-table:: UpdateSingleRoleRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "role", ":ref:`Role`", "", "The role" .. _ref_caosdb.acm.v1alpha1.UpdateSingleRoleResponse: UpdateSingleRoleResponse ------------------------------------------------------------------ Response message for the UpdateSingleRole RPC .. _ref_caosdb.acm.v1alpha1.UpdateSingleUserRequest: UpdateSingleUserRequest ------------------------------------------------------------------ Request message for the UpdateSingleUser RPC .. csv-table:: UpdateSingleUserRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto "user", ":ref:`User`", "", "The new user." "password_setting", ":ref:`PasswordSetting`", "", "The new password. Password will not be updated when this is unset." .. _ref_caosdb.acm.v1alpha1.UpdateSingleUserResponse: UpdateSingleUserResponse ------------------------------------------------------------------ Response message for the UpdateSingleUser RPC .. _ref_caosdb.acm.v1alpha1.User: User ------------------------------------------------------------------ User .. csv-table:: User type fields :header: "Field", "Type", "Label", "Description" :widths: auto "status", ":ref:`UserStatus`", "", "Indicates whether the user is active. Only active users can sign in and interact with the CaosDB Server." "realm", ":ref:`string`", "", "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." "name", ":ref:`string`", "", "Name of this user." "email_setting", ":ref:`EmailSetting`", "", "Email setting of this user." "entity_setting", ":ref:`EntitySetting`", "", "Entity setting of this user." "roles", ":ref:`string`", "repeated", "List of roles of this user." .. _ref_caosdb.acm.v1alpha1.RoleCapabilities: RoleCapabilities ------------------------------------------------------------------ Role Capabilities .. csv-table:: Enum RoleCapabilities values :header: "Name", "Number", "Description" :widths: auto "ROLE_CAPABILITIES_UNSPECIFIED", "0", "Unspecified capability" "ROLE_CAPABILITIES_DELETE", "1", "This role is deletable" "ROLE_CAPABILITIES_UPDATE_PERMISSION_RULES", "2", "This role's permissions can be changed" "ROLE_CAPABILITIES_ASSIGN", "3", "This role can be assigned to a user" .. _ref_caosdb.acm.v1alpha1.RolePermissions: RolePermissions ------------------------------------------------------------------ Role Permissions .. csv-table:: Enum RolePermissions values :header: "Name", "Number", "Description" :widths: auto "ROLE_PERMISSIONS_UNSPECIFIED", "0", "Unspecified permission" "ROLE_PERMISSIONS_DELETE", "1", "Role can be deleted" "ROLE_PERMISSIONS_UPDATE_DESCRIPTION", "2", "Description can be updated" "ROLE_PERMISSIONS_UPDATE_PERMISSION_RULES", "3", "Permission rules of this role can be updated" "ROLE_PERMISSIONS_ASSIGN", "4", "This role can be assigned" .. _ref_caosdb.acm.v1alpha1.UserCapabilities: UserCapabilities ------------------------------------------------------------------ What can be done with a user (generally speaking, if permissions suffice). .. csv-table:: Enum UserCapabilities values :header: "Name", "Number", "Description" :widths: auto "USER_CAPABILITIES_UNSPECIFIED", "0", "Unspecified capability" "USER_CAPABILITIES_DELETE", "1", "User can be deleted." "USER_CAPABILITIES_UPDATE_PASSWORD", "2", "The user's password can be updated." .. _ref_caosdb.acm.v1alpha1.UserPermissions: UserPermissions ------------------------------------------------------------------ Permissions for updating and deleting a user. .. csv-table:: Enum UserPermissions values :header: "Name", "Number", "Description" :widths: auto "USER_PERMISSIONS_UNSPECIFIED", "0", "Unspecified permission" "USER_PERMISSIONS_DELETE", "1", "The user can be deleted." "USER_PERMISSIONS_UPDATE_PASSWORD", "2", "The password of the user can be updated." "USER_PERMISSIONS_UPDATE_EMAIL", "3", "The email of the user can be updated." "USER_PERMISSIONS_UPDATE_STATUS", "4", "The status (active/inactive) of the user can be changed." "USER_PERMISSIONS_UPDATE_ROLES", "5", "The roles of the user can be altered." "USER_PERMISSIONS_UPDATE_ENTITY", "6", "Ths entity of the user can be set." .. _ref_caosdb.acm.v1alpha1.UserStatus: UserStatus ------------------------------------------------------------------ UserStatus .. csv-table:: Enum UserStatus values :header: "Name", "Number", "Description" :widths: auto "USER_STATUS_UNSPECIFIED", "0", "The user status is unspecified/unknown." "USER_STATUS_INACTIVE", "1", "The user is inactive and cannot sign in." "USER_STATUS_ACTIVE", "2", "The user is active and can sign in." .. _ref_caosdb.acm.v1alpha1.AccessControlManagementService: AccessControlManagementService ------------------------------------------------------------------ A service for managing the access to the CaosDB Server via user accounts, roles and permissions. .. csv-table:: AccessControlManagementService service methods :header: "Method Name", "Request Type", "Response Type", "Description" :widths: auto "ListUsers", ":ref:`ref_caosdb.acm.v1alpha1.ListUsersRequest`", ":ref:`ref_caosdb.acm.v1alpha1.ListUsersResponse`", "Request the list of known users." "RetrieveSingleUser", ":ref:`ref_caosdb.acm.v1alpha1.RetrieveSingleUserRequest`", ":ref:`ref_caosdb.acm.v1alpha1.RetrieveSingleUserResponse`", "Retrieve a single user" "CreateSingleUser", ":ref:`ref_caosdb.acm.v1alpha1.CreateSingleUserRequest`", ":ref:`ref_caosdb.acm.v1alpha1.CreateSingleUserResponse`", "Create a single new user" "UpdateSingleUser", ":ref:`ref_caosdb.acm.v1alpha1.UpdateSingleUserRequest`", ":ref:`ref_caosdb.acm.v1alpha1.UpdateSingleUserResponse`", "Update a single user" "DeleteSingleUser", ":ref:`ref_caosdb.acm.v1alpha1.DeleteSingleUserRequest`", ":ref:`ref_caosdb.acm.v1alpha1.DeleteSingleUserResponse`", "Delete a single user" "ListRoles", ":ref:`ref_caosdb.acm.v1alpha1.ListRolesRequest`", ":ref:`ref_caosdb.acm.v1alpha1.ListRolesResponse`", "Request the list of roles." "RetrieveSingleRole", ":ref:`ref_caosdb.acm.v1alpha1.RetrieveSingleRoleRequest`", ":ref:`ref_caosdb.acm.v1alpha1.RetrieveSingleRoleResponse`", "Retrieve a single role" "CreateSingleRole", ":ref:`ref_caosdb.acm.v1alpha1.CreateSingleRoleRequest`", ":ref:`ref_caosdb.acm.v1alpha1.CreateSingleRoleResponse`", "Create a single new role" "UpdateSingleRole", ":ref:`ref_caosdb.acm.v1alpha1.UpdateSingleRoleRequest`", ":ref:`ref_caosdb.acm.v1alpha1.UpdateSingleRoleResponse`", "Update a single role" "DeleteSingleRole", ":ref:`ref_caosdb.acm.v1alpha1.DeleteSingleRoleRequest`", ":ref:`ref_caosdb.acm.v1alpha1.DeleteSingleRoleResponse`", "Delete a single role" "ListKnownPermissions", ":ref:`ref_caosdb.acm.v1alpha1.ListKnownPermissionsRequest`", ":ref:`ref_caosdb.acm.v1alpha1.ListKnownPermissionsResponse`", "List all known permissions"