# Keycloak API
GET    /api/annette/v1/auth/keycloak/       biz.lobachev.annette.api_gateway_core.api.keycloak.KeycloakController.keycloak
GET    /api/annette/v1/auth/keycloak/:app   biz.lobachev.annette.api_gateway_core.api.keycloak.KeycloakController.keycloakApp(app: String)
GET    /api/annette/v1/auth/test            biz.lobachev.annette.api_gateway_core.api.keycloak.KeycloakController.test
GET    /api/annette/v1/auth/error1          biz.lobachev.annette.api_gateway_core.api.keycloak.KeycloakController.error1
GET    /api/annette/v1/auth/error2          biz.lobachev.annette.api_gateway_core.api.keycloak.KeycloakController.error2


# Application API
POST    /api/annette/v1/application/createLanguage     biz.lobachev.annette.application.gateway.ApplicationController.createLanguage
POST    /api/annette/v1/application/updateLanguage     biz.lobachev.annette.application.gateway.ApplicationController.updateLanguage
POST    /api/annette/v1/application/deleteLanguage     biz.lobachev.annette.application.gateway.ApplicationController.deleteLanguage
GET     /api/annette/v1/application/getLanguageById/:id/:fromReadSide    biz.lobachev.annette.application.gateway.ApplicationController.getLanguageById(id: String, fromReadSide: Boolean)
GET     /api/annette/v1/application/getLanguages             biz.lobachev.annette.application.gateway.ApplicationController.getLanguages
POST    /api/annette/v1/application/createTranslation        biz.lobachev.annette.application.gateway.ApplicationController.createTranslation
POST    /api/annette/v1/application/updateTranslationName    biz.lobachev.annette.application.gateway.ApplicationController.updateTranslationName
POST    /api/annette/v1/application/deleteTranslation        biz.lobachev.annette.application.gateway.ApplicationController.deleteTranslation
POST    /api/annette/v1/application/createTranslationBranch  biz.lobachev.annette.application.gateway.ApplicationController.createTranslationBranch
POST    /api/annette/v1/application/updateTranslationText    biz.lobachev.annette.application.gateway.ApplicationController.updateTranslationText
POST    /api/annette/v1/application/deleteTranslationItem    biz.lobachev.annette.application.gateway.ApplicationController.deleteTranslationItem
POST    /api/annette/v1/application/deleteTranslationText    biz.lobachev.annette.application.gateway.ApplicationController.deleteTranslationText
GET     /api/annette/v1/application/getTranslationById/:id   biz.lobachev.annette.application.gateway.ApplicationController.getTranslationById(id: String)
GET     /api/annette/v1/application/getTranslationJsonById/:id/:languageId/:fromReadSide  biz.lobachev.annette.application.gateway.ApplicationController.getTranslationJsonById(id: String, languageId: String, fromReadSide: Boolean)
POST    /api/annette/v1/application/getTranslationJsonsById/:languageId/:fromReadSide     biz.lobachev.annette.application.gateway.ApplicationController.getTranslationJsonsById(languageId: String, fromReadSide: Boolean)
POST    /api/annette/v1/application/findTranslations         biz.lobachev.annette.application.gateway.ApplicationController.findTranslations
POST    /api/annette/v1/application/createApplication        biz.lobachev.annette.application.gateway.ApplicationController.createApplication
POST    /api/annette/v1/application/updateApplication        biz.lobachev.annette.application.gateway.ApplicationController.updateApplication
POST    /api/annette/v1/application/deleteApplication        biz.lobachev.annette.application.gateway.ApplicationController.deleteApplication
GET     /api/annette/v1/application/getApplicationById/:id/:fromReadSide  biz.lobachev.annette.application.gateway.ApplicationController.getApplicationById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/application/getApplicationsById/:fromReadSide     biz.lobachev.annette.application.gateway.ApplicationController.getApplicationsById(fromReadSide: Boolean)
POST    /api/annette/v1/application/findApplications         biz.lobachev.annette.application.gateway.ApplicationController.findApplications


# Authorization API
POST    /api/annette/v1/authorization/createRole          biz.lobachev.annette.authorization.gateway.AuthorizationController.createRole
POST    /api/annette/v1/authorization/updateRole          biz.lobachev.annette.authorization.gateway.AuthorizationController.updateRole
POST    /api/annette/v1/authorization/deleteRole          biz.lobachev.annette.authorization.gateway.AuthorizationController.deleteRole
POST    /api/annette/v1/authorization/findRoles           biz.lobachev.annette.authorization.gateway.AuthorizationController.findRoles
GET     /api/annette/v1/authorization/getRoleById/:id/:fromReadSide        biz.lobachev.annette.authorization.gateway.AuthorizationController.getRoleById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/authorization/getRolesById/:fromReadSide           biz.lobachev.annette.authorization.gateway.AuthorizationController.getRolesById(fromReadSide: Boolean)
POST    /api/annette/v1/authorization/assignPrincipal     biz.lobachev.annette.authorization.gateway.AuthorizationController.assignPrincipal
POST    /api/annette/v1/authorization/unassignPrincipal   biz.lobachev.annette.authorization.gateway.AuthorizationController.unassignPrincipal
GET     /api/annette/v1/authorization/getRolePrincipals/:id/:fromReadSide  biz.lobachev.annette.authorization.gateway.AuthorizationController.getRolePrincipals(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/authorization/findAssignments     biz.lobachev.annette.authorization.gateway.AuthorizationController.findAssignments


# OrgStructure API
POST    /api/annette/v1/orgStructure/createOrganization                  biz.lobachev.annette.org_structure.gateway.OrgStructureController.createOrganization
POST    /api/annette/v1/orgStructure/deleteOrganization                  biz.lobachev.annette.org_structure.gateway.OrgStructureController.deleteOrganization
GET     /api/annette/v1/orgStructure/getOrganizationById/:orgId          biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrganizationById(orgId: String)
GET     /api/annette/v1/orgStructure/getOrganizationTree/:orgId/:itemId  biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrganizationTree(orgId: String, itemId: String)
POST    /api/annette/v1/orgStructure/createUnit                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.createUnit
POST    /api/annette/v1/orgStructure/deleteUnit                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.deleteUnit
POST    /api/annette/v1/orgStructure/assignCategory                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignCategory
POST    /api/annette/v1/orgStructure/assignChief                         biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignChief
POST    /api/annette/v1/orgStructure/unassignChief                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignChief
POST    /api/annette/v1/orgStructure/createPosition                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.createPosition
POST    /api/annette/v1/orgStructure/deletePosition                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.deletePosition
POST    /api/annette/v1/orgStructure/updateName                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateName
POST    /api/annette/v1/orgStructure/updateShortName                     biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateShortName
POST    /api/annette/v1/orgStructure/changePositionLimit                 biz.lobachev.annette.org_structure.gateway.OrgStructureController.changePositionLimit
POST    /api/annette/v1/orgStructure/assignPerson                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignPerson
POST    /api/annette/v1/orgStructure/unassignPerson                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignPerson
POST    /api/annette/v1/orgStructure/assignOrgRole                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignOrgRole
POST    /api/annette/v1/orgStructure/unassignOrgRole                     biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignOrgRole
GET     /api/annette/v1/orgStructure/getOrgItemById/:orgId/:id           biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemById(orgId: String, id: String)
POST    /api/annette/v1/orgStructure/getOrgItemsById/:orgId              biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemsById(orgId: String)
GET     /api/annette/v1/orgStructure/getOrgItemByIdFromReadSide/:id      biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemByIdFromReadSide(id: String)
POST    /api/annette/v1/orgStructure/getOrgItemsByIdFromReadSide         biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemsByIdFromReadSide
POST    /api/annette/v1/orgStructure/findOrgItems                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.findOrgItems
POST    /api/annette/v1/orgStructure/moveItem                            biz.lobachev.annette.org_structure.gateway.OrgStructureController.moveItem
POST    /api/annette/v1/orgStructure/changeItemOrder                     biz.lobachev.annette.org_structure.gateway.OrgStructureController.changeItemOrder
GET     /api/annette/v1/orgStructure/getPersonPrincipals/:personId       biz.lobachev.annette.org_structure.gateway.OrgStructureController.getPersonPrincipals(personId: String)
GET     /api/annette/v1/orgStructure/getPersonPositions/:personId        biz.lobachev.annette.org_structure.gateway.OrgStructureController.getPersonPositions(personId: String)
POST    /api/annette/v1/orgStructure/createOrgRole                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.createOrgRole
POST    /api/annette/v1/orgStructure/updateOrgRole                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateOrgRole
POST    /api/annette/v1/orgStructure/deleteOrgRole                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.deleteOrgRole
GET     /api/annette/v1/orgStructure/getOrgRoleById/:id/:fromReadSide    biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgRoleById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/orgStructure/getOrgRolesById/:fromReadSide       biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgRolesById(fromReadSide: Boolean)
POST    /api/annette/v1/orgStructure/findOrgRoles                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.findOrgRoles
POST    /api/annette/v1/orgStructure/createCategory                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.createCategory
POST    /api/annette/v1/orgStructure/updateCategory                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateCategory
POST    /api/annette/v1/orgStructure/deleteCategory                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.deleteCategory
GET     /api/annette/v1/orgStructure/getCategoryById/:id/:fromReadSide   biz.lobachev.annette.org_structure.gateway.OrgStructureController.getCategoryById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/orgStructure/getCategoriesById/:fromReadSide     biz.lobachev.annette.org_structure.gateway.OrgStructureController.getCategoriesById(fromReadSide: Boolean)
POST    /api/annette/v1/orgStructure/findCategories                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.findCategories


# Person API
POST    /api/annette/v1/person/createPerson          biz.lobachev.annette.person.gateway.PersonController.createPerson
POST    /api/annette/v1/person/updatePerson          biz.lobachev.annette.person.gateway.PersonController.updatePerson
POST    /api/annette/v1/person/deletePerson          biz.lobachev.annette.person.gateway.PersonController.deletePerson
POST    /api/annette/v1/person/findPersons           biz.lobachev.annette.person.gateway.PersonController.findPersons
GET     /api/annette/v1/person/getPersonById/:id/:fromReadSide     biz.lobachev.annette.person.gateway.PersonController.getPersonById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/person/getPersonsById/:fromReadSide        biz.lobachev.annette.person.gateway.PersonController.getPersonsById(fromReadSide: Boolean)
POST    /api/annette/v1/person/createCategory                      biz.lobachev.annette.person.gateway.PersonController.createCategory
POST    /api/annette/v1/person/updateCategory                      biz.lobachev.annette.person.gateway.PersonController.updateCategory
POST    /api/annette/v1/person/deleteCategory                      biz.lobachev.annette.person.gateway.PersonController.deleteCategory
GET     /api/annette/v1/person/getCategoryById/:id/:fromReadSide   biz.lobachev.annette.person.gateway.PersonController.getCategoryById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/person/getCategoriesById/:fromReadSide     biz.lobachev.annette.person.gateway.PersonController.getCategoriesById(fromReadSide: Boolean)
POST    /api/annette/v1/person/findCategories                      biz.lobachev.annette.person.gateway.PersonController.findCategories
GET     /api/annette/v1/person/profile       biz.lobachev.annette.person.gateway.PersonController.profile











