# 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 **************************************
# Language
POST    /api/annette/v1/application/createLanguage     biz.lobachev.annette.application.gateway.LanguageController.createLanguage
POST    /api/annette/v1/application/updateLanguage     biz.lobachev.annette.application.gateway.LanguageController.updateLanguage
POST    /api/annette/v1/application/deleteLanguage     biz.lobachev.annette.application.gateway.LanguageController.deleteLanguage
GET     /api/annette/v1/application/getLanguageById/:id/:fromReadSide biz.lobachev.annette.application.gateway.LanguageController.getLanguageById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/application/getLanguagesById/:fromReadSide    biz.lobachev.annette.application.gateway.LanguageController.getLanguagesById(fromReadSide: Boolean)
POST    /api/annette/v1/application/findLanguages            biz.lobachev.annette.application.gateway.LanguageController.findLanguages
# Translation
POST    /api/annette/v1/application/createTranslation        biz.lobachev.annette.application.gateway.TranslationController.createTranslation
POST    /api/annette/v1/application/updateTranslation        biz.lobachev.annette.application.gateway.TranslationController.updateTranslation
POST    /api/annette/v1/application/deleteTranslation        biz.lobachev.annette.application.gateway.TranslationController.deleteTranslation
GET     /api/annette/v1/application/getTranslationById/:id/:fromReadSide biz.lobachev.annette.application.gateway.TranslationController.getTranslationById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/application/getTranslationsById/:fromReadSide    biz.lobachev.annette.application.gateway.TranslationController.getTranslationsById(fromReadSide: Boolean)
POST    /api/annette/v1/application/findTranslations         biz.lobachev.annette.application.gateway.TranslationController.findTranslations
POST    /api/annette/v1/application/updateTranslationJson    biz.lobachev.annette.application.gateway.TranslationController.updateTranslationJson
POST    /api/annette/v1/application/deleteTranslationJson    biz.lobachev.annette.application.gateway.TranslationController.deleteTranslationJson
GET     /api/annette/v1/application/getTranslationLanguages/:id         biz.lobachev.annette.application.gateway.TranslationController.getTranslationLanguages(id: String)
GET     /api/annette/v1/application/getTranslationJson/:id/:languageId  biz.lobachev.annette.application.gateway.TranslationController.getTranslationJson(id: String, languageId: String)
# Application
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
# User Application
GET     /api/annette/v1/application/getAllLanguages       biz.lobachev.annette.application.gateway.UserApplicationController.getAllLanguages
GET     /api/annette/v1/application/getAllApplications    biz.lobachev.annette.application.gateway.UserApplicationController.getAllApplications
GET     /api/annette/v1/application/getApplication/:id    biz.lobachev.annette.application.gateway.UserApplicationController.getApplication(id: String)
GET     /api/annette/v1/application/getApplicationTranslations/:id/:languageId  biz.lobachev.annette.application.gateway.UserApplicationController.getApplicationTranslations(id: String, languageId: String)
POST    /api/annette/v1/application/getTranslationJsons/:languageId     biz.lobachev.annette.application.gateway.UserApplicationController.getTranslationJsons(languageId: String)


# ************************************** Service Catalog API **************************************
# Category
POST    /api/annette/v1/serviceCatalog/createCategory     biz.lobachev.annette.service_catalog.gateway.CategoryController.createCategory
POST    /api/annette/v1/serviceCatalog/updateCategory     biz.lobachev.annette.service_catalog.gateway.CategoryController.updateCategory
POST    /api/annette/v1/serviceCatalog/deleteCategory     biz.lobachev.annette.service_catalog.gateway.CategoryController.deleteCategory
GET     /api/annette/v1/serviceCatalog/getCategoryById/:id/:fromReadSide biz.lobachev.annette.service_catalog.gateway.CategoryController.getCategoryById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/serviceCatalog/getCategoriesById/:fromReadSide    biz.lobachev.annette.service_catalog.gateway.CategoryController.getCategoriesById(fromReadSide: Boolean)
POST    /api/annette/v1/serviceCatalog/findCategories            biz.lobachev.annette.service_catalog.gateway.CategoryController.findCategories
# Scope
POST    /api/annette/v1/serviceCatalog/createScope     biz.lobachev.annette.service_catalog.gateway.ScopeController.createScope
POST    /api/annette/v1/serviceCatalog/updateScope     biz.lobachev.annette.service_catalog.gateway.ScopeController.updateScope
POST    /api/annette/v1/serviceCatalog/activateScope     biz.lobachev.annette.service_catalog.gateway.ScopeController.activateScope
POST    /api/annette/v1/serviceCatalog/deactivateScope     biz.lobachev.annette.service_catalog.gateway.ScopeController.deactivateScope
POST    /api/annette/v1/serviceCatalog/deleteScope     biz.lobachev.annette.service_catalog.gateway.ScopeController.deleteScope
GET     /api/annette/v1/serviceCatalog/getScopeById/:id/:fromReadSide biz.lobachev.annette.service_catalog.gateway.ScopeController.getScopeById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/serviceCatalog/getScopesById/:fromReadSide    biz.lobachev.annette.service_catalog.gateway.ScopeController.getScopesById(fromReadSide: Boolean)
POST    /api/annette/v1/serviceCatalog/findScopes            biz.lobachev.annette.service_catalog.gateway.ScopeController.findScopes
# Scope principal
POST    /api/annette/v1/serviceCatalog/assignScopePrincipal     biz.lobachev.annette.service_catalog.gateway.ScopePrincipalController.assignScopePrincipal
POST    /api/annette/v1/serviceCatalog/unassignScopePrincipal     biz.lobachev.annette.service_catalog.gateway.ScopePrincipalController.unassignScopePrincipal
POST    /api/annette/v1/serviceCatalog/findScopePrincipals     biz.lobachev.annette.service_catalog.gateway.ScopePrincipalController.findScopePrincipals

# Service Item
POST    /api/annette/v1/serviceCatalog/createGroup       biz.lobachev.annette.service_catalog.gateway.ServiceItemController.createGroup
POST    /api/annette/v1/serviceCatalog/updateGroup       biz.lobachev.annette.service_catalog.gateway.ServiceItemController.updateGroup
POST    /api/annette/v1/serviceCatalog/createService     biz.lobachev.annette.service_catalog.gateway.ServiceItemController.createService
POST    /api/annette/v1/serviceCatalog/updateService     biz.lobachev.annette.service_catalog.gateway.ServiceItemController.updateService
POST    /api/annette/v1/serviceCatalog/activateServiceItem    biz.lobachev.annette.service_catalog.gateway.ServiceItemController.activateServiceItem
POST    /api/annette/v1/serviceCatalog/deactivateServiceItem  biz.lobachev.annette.service_catalog.gateway.ServiceItemController.deactivateServiceItem
POST    /api/annette/v1/serviceCatalog/deleteServiceItem      biz.lobachev.annette.service_catalog.gateway.ServiceItemController.deleteServiceItem
GET     /api/annette/v1/serviceCatalog/getServiceItemById/:id/:fromReadSide biz.lobachev.annette.service_catalog.gateway.ServiceItemController.getServiceItemById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/serviceCatalog/getServiceItemsById/:fromReadSide    biz.lobachev.annette.service_catalog.gateway.ServiceItemController.getServiceItemsById(fromReadSide: Boolean)
POST    /api/annette/v1/serviceCatalog/findServiceItems       biz.lobachev.annette.service_catalog.gateway.ServiceItemController.findServiceItems
# Service principal
POST    /api/annette/v1/serviceCatalog/assignServicePrincipal     biz.lobachev.annette.service_catalog.gateway.ServicePrincipalController.assignServicePrincipal
POST    /api/annette/v1/serviceCatalog/unassignServicePrincipal     biz.lobachev.annette.service_catalog.gateway.ServicePrincipalController.unassignServicePrincipal
POST    /api/annette/v1/serviceCatalog/findServicePrincipals     biz.lobachev.annette.service_catalog.gateway.ServicePrincipalController.findServicePrincipals
# User services
GET     /api/annette/v1/serviceCatalog/getUserServices/:categoryId/:languageId     biz.lobachev.annette.service_catalog.gateway.UserServiceController.getUserServices(categoryId: String, languageId: String)
POST    /api/annette/v1/serviceCatalog/findUserServices     biz.lobachev.annette.service_catalog.gateway.UserServiceController.findUserServices



# ************************************** Authorization API **************************************
# Authorization Role
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)
# Permission Assignments
POST    /api/annette/v1/authorization/findAssignments     biz.lobachev.annette.authorization.gateway.AuthorizationController.findAssignments

# ************************************** OrgStructure API **************************************
# OrgStructure
POST    /api/annette/v1/orgStructure/createOrganization                  biz.lobachev.annette.org_structure.gateway.OrgStructureController.createOrganization(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/createUnit                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.createUnit(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/createPosition                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.createPosition(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/updateName                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateName(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/assignCategory                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignCategory(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/updateSource                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateSource(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/updateExternalId                    biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateExternalId(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/moveItem                            biz.lobachev.annette.org_structure.gateway.OrgStructureController.moveItem
POST    /api/annette/v1/orgStructure/updateOrgItemAttributes             biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateOrgItemAttributes
POST    /api/annette/v1/orgStructure/assignChief                         biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignChief(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/unassignChief                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignChief(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/changePositionLimit                 biz.lobachev.annette.org_structure.gateway.OrgStructureController.changePositionLimit(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/assignPerson                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignPerson(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/unassignPerson                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignPerson(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/assignOrgRole                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignOrgRole(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/unassignOrgRole                     biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignOrgRole(withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/deleteOrgItem                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.deleteOrgItem
GET     /api/annette/v1/orgStructure/getOrganizationById/:orgId          biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrganizationById(orgId: String)
GET     /api/annette/v1/orgStructure/getOrganizationTree/:itemId         biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrganizationTree(itemId: String)
GET     /api/annette/v1/orgStructure/getOrgItemById/:id/:fromReadSide    biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemById(id: String, fromReadSide: Boolean, withAttributes: Option[String])
POST    /api/annette/v1/orgStructure/getOrgItemsById/:fromReadSide       biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemsById(fromReadSide: Boolean, withAttributes: Option[String])
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/findOrgItems                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.findOrgItems
GET     /api/annette/v1/orgStructure/getOrgItemMetadata                  biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemMetadata
GET     /api/annette/v1/orgStructure/getOrgItemAttributes/:id/:fromReadSide  biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemAttributes(id: String, fromReadSide: Boolean, attributes: Option[String])
POST    /api/annette/v1/orgStructure/getOrgItemsAttributes/:fromReadSide     biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemsAttributes(fromReadSide: Boolean, attributes: Option[String])

# OrgStructure Role
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
# OrgStructure Category
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 **************************************
# Person
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/updatePersonAttributes  biz.lobachev.annette.person.gateway.PersonController.updatePersonAttributes
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, withAttributes: Option[String])
POST    /api/annette/v1/person/getPersonsById/:fromReadSide       biz.lobachev.annette.person.gateway.PersonController.getPersonsById(fromReadSide: Boolean, withAttributes: Option[String])
GET     /api/annette/v1/person/getPersonMetadata       biz.lobachev.annette.person.gateway.PersonController.getPersonMetadata
GET     /api/annette/v1/person/getPersonAttributes/:id/:fromReadSide  biz.lobachev.annette.person.gateway.PersonController.getPersonAttributes(id: String, fromReadSide: Boolean, attributes: Option[String])
POST    /api/annette/v1/person/getPersonsAttributes/:fromReadSide     biz.lobachev.annette.person.gateway.PersonController.getPersonsAttributes(fromReadSide: Boolean, attributes: Option[String])
GET     /api/annette/v1/person/profile                             biz.lobachev.annette.person.gateway.PersonController.profile

# Person Category
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

# ************************************** Principal Group API **************************************
# Principal Group
POST    /api/annette/v1/principalGroup/createPrincipalGroup            biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.createPrincipalGroup
POST    /api/annette/v1/principalGroup/updatePrincipalGroupName        biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.updatePrincipalGroupName
POST    /api/annette/v1/principalGroup/updatePrincipalGroupDescription biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.updatePrincipalGroupDescription
POST    /api/annette/v1/principalGroup/updatePrincipalGroupCategory    biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.updatePrincipalGroupCategory
POST    /api/annette/v1/principalGroup/assignPrincipal                 biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.assignPrincipal
POST    /api/annette/v1/principalGroup/unassignPrincipal               biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.unassignPrincipal
POST    /api/annette/v1/principalGroup/deletePrincipalGroup            biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.deletePrincipalGroup
POST    /api/annette/v1/principalGroup/findPrincipalGroups             biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.findPrincipalGroups
GET     /api/annette/v1/principalGroup/getPrincipalGroupById/:id/:fromReadSide biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getPrincipalGroupById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/principalGroup/getPrincipalGroupsById/:fromReadSide    biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getPrincipalGroupsById(fromReadSide: Boolean)
GET     /api/annette/v1/principalGroup/getAssignments/:id                  biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getAssignments(id: String)
# Principal Group Category
POST    /api/annette/v1/principalGroup/createCategory                      biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.createCategory
POST    /api/annette/v1/principalGroup/updateCategory                      biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.updateCategory
POST    /api/annette/v1/principalGroup/deleteCategory                      biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.deleteCategory
GET     /api/annette/v1/principalGroup/getCategoryById/:id/:fromReadSide   biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getCategoryById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/principalGroup/getCategoriesById/:fromReadSide     biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getCategoriesById(fromReadSide: Boolean)
POST    /api/annette/v1/principalGroup/findCategories                      biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.findCategories

# ************************************** CMS Blogs API **************************************
# CMS Blog Category
POST    /api/annette/v1/cms/createBlogCategory                  biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.createBlogCategory
POST    /api/annette/v1/cms/updateBlogCategory                  biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.updateBlogCategory
POST    /api/annette/v1/cms/deleteBlogCategory                  biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.deleteBlogCategory
GET     /api/annette/v1/cms/getBlogCategoryById/:id/:fromReadSide biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.getBlogCategoryById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/cms/getBlogCategoriesById/:fromReadSide   biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.getBlogCategoriesById(fromReadSide: Boolean)
POST    /api/annette/v1/cms/findBlogCategories                  biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.findBlogCategories
# CMS Blog
POST    /api/annette/v1/cms/createBlog                     biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.createBlog
POST    /api/annette/v1/cms/updateBlogName                 biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.updateBlogName
POST    /api/annette/v1/cms/updateBlogDescription          biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.updateBlogDescription
POST    /api/annette/v1/cms/updateBlogCategory             biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.updateBlogCategoryId
POST    /api/annette/v1/cms/assignBlogAuthorPrincipal      biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.assignBlogAuthorPrincipal
POST    /api/annette/v1/cms/unassignBlogAuthorPrincipal    biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.unassignBlogAuthorPrincipal
POST    /api/annette/v1/cms/assignBlogTargetPrincipal      biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.assignBlogTargetPrincipal
POST    /api/annette/v1/cms/unassignBlogTargetPrincipal    biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.unassignBlogTargetPrincipal
POST    /api/annette/v1/cms/activateBlog                   biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.activateBlog
POST    /api/annette/v1/cms/deactivateBlog                 biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.deactivateBlog
POST    /api/annette/v1/cms/deleteBlog                     biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.deleteBlog
GET     /api/annette/v1/cms/getBlogById/:id/:fromReadSide  biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.getBlogById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/cms/getBlogsById/:fromReadSide     biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.getBlogsById(fromReadSide: Boolean)
POST    /api/annette/v1/cms/findBlogs                      biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.findBlogs
# CMS Post
POST    /api/annette/v1/cms/createPost                      biz.lobachev.annette.cms.gateway.blogs.CmsPostController.createPost
POST    /api/annette/v1/cms/updatePostFeatured              biz.lobachev.annette.cms.gateway.blogs.CmsPostController.updatePostFeatured
POST    /api/annette/v1/cms/updatePostTitle                 biz.lobachev.annette.cms.gateway.blogs.CmsPostController.updatePostTitle
POST    /api/annette/v1/cms/updatePostAuthor                biz.lobachev.annette.cms.gateway.blogs.CmsPostController.updatePostAuthor
POST    /api/annette/v1/cms/updatePostContentSettings       biz.lobachev.annette.cms.gateway.blogs.CmsPostController.updatePostContentSettings
POST    /api/annette/v1/cms/updatePostWidget                biz.lobachev.annette.cms.gateway.blogs.CmsPostController.updatePostWidget
POST    /api/annette/v1/cms/changePostWidgetOrder           biz.lobachev.annette.cms.gateway.blogs.CmsPostController.changePostWidgetOrder
POST    /api/annette/v1/cms/deletePostWidget                biz.lobachev.annette.cms.gateway.blogs.CmsPostController.deletePostWidget
POST    /api/annette/v1/cms/updatePostPublicationTimestamp  biz.lobachev.annette.cms.gateway.blogs.CmsPostController.updatePostPublicationTimestamp
POST    /api/annette/v1/cms/publishPost/:id                 biz.lobachev.annette.cms.gateway.blogs.CmsPostController.publishPost(id: String)
POST    /api/annette/v1/cms/unpublishPost/:id               biz.lobachev.annette.cms.gateway.blogs.CmsPostController.unpublishPost(id: String)
POST    /api/annette/v1/cms/assignPostTargetPrincipal       biz.lobachev.annette.cms.gateway.blogs.CmsPostController.assignPostTargetPrincipal
POST    /api/annette/v1/cms/unassignPostTargetPrincipal     biz.lobachev.annette.cms.gateway.blogs.CmsPostController.unassignPostTargetPrincipal
POST    /api/annette/v1/cms/deletePost                      biz.lobachev.annette.cms.gateway.blogs.CmsPostController.deletePost
POST    /api/annette/v1/cms/findPosts                       biz.lobachev.annette.cms.gateway.blogs.CmsPostController.findPosts
GET     /api/annette/v1/cms/getPostById/:id/:fromReadSide   biz.lobachev.annette.cms.gateway.blogs.CmsPostController.getPostById(id: String, fromReadSide: Boolean, withIntro: Option[Boolean], withContent: Option[Boolean], withTargets: Option[Boolean])
POST    /api/annette/v1/cms/getPostsById/:fromReadSide      biz.lobachev.annette.cms.gateway.blogs.CmsPostController.getPostsById(fromReadSide: Boolean, withIntro: Option[Boolean], withContent: Option[Boolean], withTargets: Option[Boolean])
POST    /api/annette/v1/cms/uploadPostFile/:postId/:fileType   biz.lobachev.annette.cms.gateway.blogs.CmsPostController.uploadPostFile(postId: String, fileType: String)
POST    /api/annette/v1/cms/removePostFile/:postId/:fileType/:fileId   biz.lobachev.annette.cms.gateway.blogs.CmsPostController.removePostFile(postId: String, fileType: String, fileId: String)
GET     /api/annette/v1/cms/getPostFiles/:postId                       biz.lobachev.annette.cms.gateway.blogs.CmsPostController.getPostFiles(postId: String)
# ************************************** CMS Blog View API **************************************
# CMS Blog View
POST    /api/annette/v1/cms/findBlogViews                  biz.lobachev.annette.cms.gateway.blogs.CmsBlogViewController.findBlogViews
POST    /api/annette/v1/cms/getBlogViewsById               biz.lobachev.annette.cms.gateway.blogs.CmsBlogViewController.getBlogViewsById
POST    /api/annette/v1/cms/subscribeToBlog/:blogId       biz.lobachev.annette.cms.gateway.blogs.CmsBlogViewController.subscribeToBlog(blogId: String)
POST    /api/annette/v1/cms/unsubscribeFromBlog/:blogId   biz.lobachev.annette.cms.gateway.blogs.CmsBlogViewController.unsubscribeFromBlog(blogId: String)
# CMS Post View
POST    /api/annette/v1/cms/findPostViews                   biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.findPostViews
POST    /api/annette/v1/cms/getPostViewAnnotationsById      biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.getPostViewAnnotationsById
POST    /api/annette/v1/cms/getPostViewsById                biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.getPostViewsById
GET     /api/annette/v1/cms/getPostViewById/:postId         biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.getPostViewById(postId: String)
POST    /api/annette/v1/cms/viewPost/:postId                biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.viewPost(postId: String)
POST    /api/annette/v1/cms/likePost/:postId                biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.likePost(postId: String)
POST    /api/annette/v1/cms/unlikePost/:postId              biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.unlikePost(postId: String)

# ************************************** CMS Pages API **************************************
# CMS Space Category
POST    /api/annette/v1/cms/createSpaceCategory                  biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.createSpaceCategory
POST    /api/annette/v1/cms/updateSpaceCategory                  biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.updateSpaceCategory
POST    /api/annette/v1/cms/deleteSpaceCategory                  biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.deleteSpaceCategory
GET     /api/annette/v1/cms/getSpaceCategoryById/:id/:fromReadSide biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.getSpaceCategoryById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/cms/getSpaceCategoriesById/:fromReadSide   biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.getSpaceCategoriesById(fromReadSide: Boolean)
POST    /api/annette/v1/cms/findSpaceCategories                  biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.findSpaceCategories
# CMS Space
POST    /api/annette/v1/cms/createSpace                     biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.createSpace
POST    /api/annette/v1/cms/updateSpaceName                 biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.updateSpaceName
POST    /api/annette/v1/cms/updateSpaceDescription          biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.updateSpaceDescription
POST    /api/annette/v1/cms/updateSpaceCategory             biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.updateSpaceCategoryId
POST    /api/annette/v1/cms/assignSpaceAuthorPrincipal      biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.assignSpaceAuthorPrincipal
POST    /api/annette/v1/cms/unassignSpaceAuthorPrincipal    biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.unassignSpaceAuthorPrincipal
POST    /api/annette/v1/cms/assignSpaceTargetPrincipal      biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.assignSpaceTargetPrincipal
POST    /api/annette/v1/cms/unassignSpaceTargetPrincipal    biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.unassignSpaceTargetPrincipal
POST    /api/annette/v1/cms/activateSpace                   biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.activateSpace
POST    /api/annette/v1/cms/deactivateSpace                 biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.deactivateSpace
POST    /api/annette/v1/cms/deleteSpace                     biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.deleteSpace
GET     /api/annette/v1/cms/getSpaceById/:id/:fromReadSide  biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.getSpaceById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/cms/getSpacesById/:fromReadSide     biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.getSpacesById(fromReadSide: Boolean)
POST    /api/annette/v1/cms/findSpaces                      biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.findSpaces
# CMS Page
POST    /api/annette/v1/cms/createPage                      biz.lobachev.annette.cms.gateway.pages.CmsPageController.createPage
POST    /api/annette/v1/cms/updatePageTitle                 biz.lobachev.annette.cms.gateway.pages.CmsPageController.updatePageTitle
POST    /api/annette/v1/cms/updatePageAuthor                biz.lobachev.annette.cms.gateway.pages.CmsPageController.updatePageAuthor
POST    /api/annette/v1/cms/updatePageContentSettings       biz.lobachev.annette.cms.gateway.pages.CmsPageController.updatePageContentSettings
POST    /api/annette/v1/cms/updatePageWidget                biz.lobachev.annette.cms.gateway.pages.CmsPageController.updatePageWidget
POST    /api/annette/v1/cms/changePageWidgetOrder           biz.lobachev.annette.cms.gateway.pages.CmsPageController.changePageWidgetOrder
POST    /api/annette/v1/cms/deletePageWidget                biz.lobachev.annette.cms.gateway.pages.CmsPageController.deletePageWidget
POST    /api/annette/v1/cms/updatePagePublicationTimestamp  biz.lobachev.annette.cms.gateway.pages.CmsPageController.updatePagePublicationTimestamp
POST    /api/annette/v1/cms/publishPage/:id                 biz.lobachev.annette.cms.gateway.pages.CmsPageController.publishPage(id: String)
POST    /api/annette/v1/cms/unpublishPage/:id               biz.lobachev.annette.cms.gateway.pages.CmsPageController.unpublishPage(id: String)
POST    /api/annette/v1/cms/assignPageTargetPrincipal       biz.lobachev.annette.cms.gateway.pages.CmsPageController.assignPageTargetPrincipal
POST    /api/annette/v1/cms/unassignPageTargetPrincipal     biz.lobachev.annette.cms.gateway.pages.CmsPageController.unassignPageTargetPrincipal
POST    /api/annette/v1/cms/deletePage                      biz.lobachev.annette.cms.gateway.pages.CmsPageController.deletePage
POST    /api/annette/v1/cms/findPages                       biz.lobachev.annette.cms.gateway.pages.CmsPageController.findPages
GET     /api/annette/v1/cms/getPageById/:id/:fromReadSide   biz.lobachev.annette.cms.gateway.pages.CmsPageController.getPageById(id: String, fromReadSide: Boolean,  withContent: Option[Boolean], withTargets: Option[Boolean])
POST    /api/annette/v1/cms/getPagesById/:fromReadSide      biz.lobachev.annette.cms.gateway.pages.CmsPageController.getPagesById(fromReadSide: Boolean,  withContent: Option[Boolean], withTargets: Option[Boolean])
POST    /api/annette/v1/cms/uploadPageFile/:pageId/:fileType   biz.lobachev.annette.cms.gateway.pages.CmsPageController.uploadPageFile(pageId: String, fileType: String)
POST    /api/annette/v1/cms/removePageFile/:pageId/:fileType/:fileId   biz.lobachev.annette.cms.gateway.pages.CmsPageController.removePageFile(pageId: String, fileType: String, fileId: String)
GET     /api/annette/v1/cms/getPageFiles/:pageId                       biz.lobachev.annette.cms.gateway.pages.CmsPageController.getPageFiles(pageId: String)
# ************************************** CMS Space View API **************************************
# CMS Space View
POST    /api/annette/v1/cms/findSpaceViews                  biz.lobachev.annette.cms.gateway.pages.CmsSpaceViewController.findSpaceViews
POST    /api/annette/v1/cms/getSpaceViewsById               biz.lobachev.annette.cms.gateway.pages.CmsSpaceViewController.getSpaceViewsById
POST    /api/annette/v1/cms/subscribeToSpace/:spaceId       biz.lobachev.annette.cms.gateway.pages.CmsSpaceViewController.subscribeToSpace(spaceId: String)
POST    /api/annette/v1/cms/unsubscribeFromSpace/:spaceId   biz.lobachev.annette.cms.gateway.pages.CmsSpaceViewController.unsubscribeFromSpace(spaceId: String)
# CMS Page View
POST    /api/annette/v1/cms/findPageViews                   biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.findPageViews
POST    /api/annette/v1/cms/getPageViewsById                biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.getPageViewsById
GET     /api/annette/v1/cms/getPageViewById/:pageId         biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.getPageViewById(pageId: String)
POST    /api/annette/v1/cms/viewPage/:pageId                biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.viewPage(pageId: String)
POST    /api/annette/v1/cms/likePage/:pageId                biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.likePage(pageId: String)
POST    /api/annette/v1/cms/unlikePage/:pageId              biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.unlikePage(pageId: String)
# ************************************** CMS File API **************************************
GET    /api/annette/v1/cms/file/:objectId/:fileType/:fileId    biz.lobachev.annette.cms.gateway.files.CmsFileController.getFile(objectId: String, fileType: String, fileId: String)
# ************************************** CMS Home Page **************************************
POST    /api/annette/v1/cms/assignHomePage                     biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.assignHomePage
POST    /api/annette/v1/cms/unassignHomePage                   biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.unassignHomePage
GET     /api/annette/v1/cms/getHomePageById/:id/:fromReadSide  biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.getHomePageById(id: String, fromReadSide: Boolean)
POST    /api/annette/v1/cms/getHomePagesById/:fromReadSide     biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.getHomePagesById(fromReadSide: Boolean)
POST    /api/annette/v1/cms/findHomePages                      biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.findHomePages
GET     /api/annette/v1/cms/getMyHomePage/:applicationId       biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.getMyHomePage(applicationId: String)

# ************************************** BPM API **************************************
# BPM Model
POST    /api/annette/v1/bpm/createBpmModel      biz.lobachev.annette.bpm.gateway.BpmModelController.createBpmModel
POST    /api/annette/v1/bpm/updateBpmModel      biz.lobachev.annette.bpm.gateway.BpmModelController.updateBpmModel
POST    /api/annette/v1/bpm/updateBpmModelName  biz.lobachev.annette.bpm.gateway.BpmModelController.updateBpmModelName
POST    /api/annette/v1/bpm/updateBpmModelDescription  biz.lobachev.annette.bpm.gateway.BpmModelController.updateBpmModelDescription
POST    /api/annette/v1/bpm/updateBpmModelXml   biz.lobachev.annette.bpm.gateway.BpmModelController.updateBpmModelXml
POST    /api/annette/v1/bpm/deleteBpmModel      biz.lobachev.annette.bpm.gateway.BpmModelController.deleteBpmModel
POST    /api/annette/v1/bpm/findBpmModels       biz.lobachev.annette.bpm.gateway.BpmModelController.findBpmModels
GET     /api/annette/v1/bpm/getBpmModelById/:id biz.lobachev.annette.bpm.gateway.BpmModelController.getBpmModelById(id: String, withXml: Option[Boolean])
POST    /api/annette/v1/bpm/getBpmModelsById    biz.lobachev.annette.bpm.gateway.BpmModelController.getBpmModelsById(withXml: Option[Boolean])

# Data Schema
POST    /api/annette/v1/bpm/createDataSchema      biz.lobachev.annette.bpm.gateway.DataSchemaController.createDataSchema
POST    /api/annette/v1/bpm/updateDataSchema      biz.lobachev.annette.bpm.gateway.DataSchemaController.updateDataSchema
POST    /api/annette/v1/bpm/updateDataSchemaName  biz.lobachev.annette.bpm.gateway.DataSchemaController.updateDataSchemaName
POST    /api/annette/v1/bpm/updateDataSchemaDescription  biz.lobachev.annette.bpm.gateway.DataSchemaController.updateDataSchemaDescription
POST    /api/annette/v1/bpm/storeDataSchemaVariable   biz.lobachev.annette.bpm.gateway.DataSchemaController.storeDataSchemaVariable
POST    /api/annette/v1/bpm/deleteDataSchemaVariable  biz.lobachev.annette.bpm.gateway.DataSchemaController.deleteDataSchemaVariable
POST    /api/annette/v1/bpm/deleteDataSchema      biz.lobachev.annette.bpm.gateway.DataSchemaController.deleteDataSchema
POST    /api/annette/v1/bpm/findDataSchemas       biz.lobachev.annette.bpm.gateway.DataSchemaController.findDataSchemas
GET     /api/annette/v1/bpm/getDataSchemaById/:id biz.lobachev.annette.bpm.gateway.DataSchemaController.getDataSchemaById(id: String, withVariables: Option[Boolean])
POST    /api/annette/v1/bpm/getDataSchemasById    biz.lobachev.annette.bpm.gateway.DataSchemaController.getDataSchemasById(withVariables: Option[Boolean])

# Business Process
POST    /api/annette/v1/bpm/createBusinessProcess      biz.lobachev.annette.bpm.gateway.BusinessProcessController.createBusinessProcess
POST    /api/annette/v1/bpm/updateBusinessProcess      biz.lobachev.annette.bpm.gateway.BusinessProcessController.updateBusinessProcess
POST    /api/annette/v1/bpm/updateBusinessProcessName  biz.lobachev.annette.bpm.gateway.BusinessProcessController.updateBusinessProcessName
POST    /api/annette/v1/bpm/updateBusinessProcessDescription  biz.lobachev.annette.bpm.gateway.BusinessProcessController.updateBusinessProcessDescription
POST    /api/annette/v1/bpm/updateBusinessProcessBpmModel     biz.lobachev.annette.bpm.gateway.BusinessProcessController.updateBusinessProcessBpmModel
POST    /api/annette/v1/bpm/updateBusinessProcessDataSchema   biz.lobachev.annette.bpm.gateway.BusinessProcessController.updateBusinessProcessDataSchema
POST    /api/annette/v1/bpm/updateBusinessProcessProcessDefinition  biz.lobachev.annette.bpm.gateway.BusinessProcessController.updateBusinessProcessProcessDefinition
POST    /api/annette/v1/bpm/storeBusinessProcessVariable   biz.lobachev.annette.bpm.gateway.BusinessProcessController.storeBusinessProcessVariable
POST    /api/annette/v1/bpm/deleteBusinessProcessVariable  biz.lobachev.annette.bpm.gateway.BusinessProcessController.deleteBusinessProcessVariable
POST    /api/annette/v1/bpm/deleteBusinessProcess      biz.lobachev.annette.bpm.gateway.BusinessProcessController.deleteBusinessProcess
POST    /api/annette/v1/bpm/findBusinessProcesses       biz.lobachev.annette.bpm.gateway.BusinessProcessController.findBusinessProcesses
GET     /api/annette/v1/bpm/getBusinessProcessById/:id biz.lobachev.annette.bpm.gateway.BusinessProcessController.getBusinessProcessById(id: String, withVariables: Option[Boolean])
POST    /api/annette/v1/bpm/getBusinessProcessesById    biz.lobachev.annette.bpm.gateway.BusinessProcessController.getBusinessProcessesById(withVariables: Option[Boolean])

# Camunda repository
POST    /api/annette/v1/bpm/deployBpmModel      biz.lobachev.annette.bpm.gateway.CamundaRepositoryController.deployBpmModel
