# 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/getLanguage/:id biz.lobachev.annette.application.gateway.LanguageController.getLanguage(id: String, source: Option[String])
POST    /api/annette/v1/application/getLanguages    biz.lobachev.annette.application.gateway.LanguageController.getLanguages(source: Option[String])
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/getTranslation/:id biz.lobachev.annette.application.gateway.TranslationController.getTranslation(id: String, source: Option[String])
POST    /api/annette/v1/application/getTranslations    biz.lobachev.annette.application.gateway.TranslationController.getTranslations(source: Option[String])
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/getApplication/:id  biz.lobachev.annette.application.gateway.ApplicationController.getApplication(id: String, source: Option[String])
POST    /api/annette/v1/application/getApplications     biz.lobachev.annette.application.gateway.ApplicationController.getApplications(source: Option[String])
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/getCategory/:id biz.lobachev.annette.service_catalog.gateway.CategoryController.getCategory(id: String, source: Option[String])
POST    /api/annette/v1/serviceCatalog/getCategories    biz.lobachev.annette.service_catalog.gateway.CategoryController.getCategories(source: Option[String])
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/getScope/:id biz.lobachev.annette.service_catalog.gateway.ScopeController.getScope(id: String, source: Option[String])
POST    /api/annette/v1/serviceCatalog/getScopes    biz.lobachev.annette.service_catalog.gateway.ScopeController.getScopes(source: Option[String])
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/getServiceItem/:id biz.lobachev.annette.service_catalog.gateway.ServiceItemController.getServiceItem(id: String, source: Option[String])
POST    /api/annette/v1/serviceCatalog/getServiceItems    biz.lobachev.annette.service_catalog.gateway.ServiceItemController.getServiceItems(source: Option[String])
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/getRole/:id         biz.lobachev.annette.authorization.gateway.AuthorizationController.getRole(id: String, source: Option[String])
POST    /api/annette/v1/authorization/getRoles            biz.lobachev.annette.authorization.gateway.AuthorizationController.getRoles(source: Option[String])
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  biz.lobachev.annette.authorization.gateway.AuthorizationController.getRolePrincipals(id: String, source: Option[String])
# 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(attributes: Option[String])
POST    /api/annette/v1/orgStructure/createUnit                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.createUnit(attributes: Option[String])
POST    /api/annette/v1/orgStructure/createPosition                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.createPosition(attributes: Option[String])
POST    /api/annette/v1/orgStructure/updateName                          biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateName(attributes: Option[String])
POST    /api/annette/v1/orgStructure/assignCategory                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignCategory(attributes: Option[String])
POST    /api/annette/v1/orgStructure/updateSource                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateSource(attributes: Option[String])
POST    /api/annette/v1/orgStructure/updateExternalId                    biz.lobachev.annette.org_structure.gateway.OrgStructureController.updateExternalId(attributes: 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(attributes: Option[String])
POST    /api/annette/v1/orgStructure/unassignChief                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignChief(attributes: Option[String])
POST    /api/annette/v1/orgStructure/changePositionLimit                 biz.lobachev.annette.org_structure.gateway.OrgStructureController.changePositionLimit(attributes: Option[String])
POST    /api/annette/v1/orgStructure/assignPerson                        biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignPerson(attributes: Option[String])
POST    /api/annette/v1/orgStructure/unassignPerson                      biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignPerson(attributes: Option[String])
POST    /api/annette/v1/orgStructure/assignOrgRole                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.assignOrgRole(attributes: Option[String])
POST    /api/annette/v1/orgStructure/unassignOrgRole                     biz.lobachev.annette.org_structure.gateway.OrgStructureController.unassignOrgRole(attributes: Option[String])
POST    /api/annette/v1/orgStructure/deleteOrgItem                       biz.lobachev.annette.org_structure.gateway.OrgStructureController.deleteOrgItem
GET     /api/annette/v1/orgStructure/getOrganization/:orgId          biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrganization(orgId: String)
GET     /api/annette/v1/orgStructure/getOrganizationTree/:itemId         biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrganizationTree(itemId: String)
GET     /api/annette/v1/orgStructure/getOrgItem/:id    biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItem(id: String, source: Option[String], attributes: Option[String])
POST    /api/annette/v1/orgStructure/getOrgItems       biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItems(source: Option[String], attributes: 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  biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemAttributes(id: String, source: Option[String], attributes: Option[String])
POST    /api/annette/v1/orgStructure/getOrgItemsAttributes     biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgItemsAttributes(source: Option[String], 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/getOrgRole/:id  biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgRole(id: String, source: Option[String])
POST    /api/annette/v1/orgStructure/getOrgRoles     biz.lobachev.annette.org_structure.gateway.OrgStructureController.getOrgRoles(source: Option[String])
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/getCategory/:id  biz.lobachev.annette.org_structure.gateway.OrgStructureController.getCategory(id: String, source: Option[String])
POST    /api/annette/v1/orgStructure/getCategories    biz.lobachev.annette.org_structure.gateway.OrgStructureController.getCategories(source: Option[String])
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/getPerson/:id    biz.lobachev.annette.person.gateway.PersonController.getPerson(id: String, source: Option[String], attributes: Option[String])
POST    /api/annette/v1/person/getPersons       biz.lobachev.annette.person.gateway.PersonController.getPersons(source: Option[String], attributes: Option[String])
GET     /api/annette/v1/person/getPersonMetadata        biz.lobachev.annette.person.gateway.PersonController.getPersonMetadata
GET     /api/annette/v1/person/getPersonAttributes/:id  biz.lobachev.annette.person.gateway.PersonController.getPersonAttributes(id: String, source: Option[String], attributes: Option[String])
POST    /api/annette/v1/person/getPersonsAttributes     biz.lobachev.annette.person.gateway.PersonController.getPersonsAttributes(source: Option[String], 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/getCategory/:id   biz.lobachev.annette.person.gateway.PersonController.getCategory(id: String, source: Option[String])
POST    /api/annette/v1/person/getCategories     biz.lobachev.annette.person.gateway.PersonController.getCategories(source: Option[String])
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/getPrincipalGroup/:id biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getPrincipalGroup(id: String, source: Option[String])
POST    /api/annette/v1/principalGroup/getPrincipalGroups    biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getPrincipalGroups(source: Option[String])
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/getCategory/:id   biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getCategory(id: String, source: Option[String])
POST    /api/annette/v1/principalGroup/getCategories     biz.lobachev.annette.principal_group.gateway.PrincipalGroupController.getCategories(source: Option[String])
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/getBlogCategory/:id biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.getBlogCategory(id: String, source: Option[String])
POST    /api/annette/v1/cms/getBlogCategories   biz.lobachev.annette.cms.gateway.blogs.CmsBlogCategoryController.getBlogCategories(source: Option[String])
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/getBlog/:id  biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.getBlog(id: String, source: Option[String])
POST    /api/annette/v1/cms/getBlogs     biz.lobachev.annette.cms.gateway.blogs.CmsBlogController.getBlogs(source: Option[String])
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/getPost/:id   biz.lobachev.annette.cms.gateway.blogs.CmsPostController.getPost(id: String, source: Option[String], withIntro: Option[Boolean], withContent: Option[Boolean], withTargets: Option[Boolean])
POST    /api/annette/v1/cms/getPosts      biz.lobachev.annette.cms.gateway.blogs.CmsPostController.getPosts(source: Option[String], 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/getBlogViews               biz.lobachev.annette.cms.gateway.blogs.CmsBlogViewController.getBlogViews
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/getPostViewAnnotations      biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.getPostViewAnnotations
POST    /api/annette/v1/cms/getPostViews                biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.getPostViews
GET     /api/annette/v1/cms/getPostView/:postId         biz.lobachev.annette.cms.gateway.blogs.CmsPostViewController.getPostView(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/getSpaceCategory/:id biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.getSpaceCategory(id: String, source: Option[String])
POST    /api/annette/v1/cms/getSpaceCategories   biz.lobachev.annette.cms.gateway.pages.CmsSpaceCategoryController.getSpaceCategories(source: Option[String])
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/getSpace/:id  biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.getSpace(id: String, source: Option[String])
POST    /api/annette/v1/cms/getSpaces     biz.lobachev.annette.cms.gateway.pages.CmsSpaceController.getSpaces(source: Option[String])
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/getPage/:id   biz.lobachev.annette.cms.gateway.pages.CmsPageController.getPage(id: String, source: Option[String],  withContent: Option[Boolean], withTargets: Option[Boolean])
POST    /api/annette/v1/cms/getPages      biz.lobachev.annette.cms.gateway.pages.CmsPageController.getPages(source: Option[String],  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/getSpaceViews               biz.lobachev.annette.cms.gateway.pages.CmsSpaceViewController.getSpaceViews
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/getPageViews                biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.getPageViews
GET     /api/annette/v1/cms/getPageView/:pageId         biz.lobachev.annette.cms.gateway.pages.CmsPageViewController.getPageView(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/getHomePage/:id  biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.getHomePage(id: String, source: Option[String])
POST    /api/annette/v1/cms/getHomePages     biz.lobachev.annette.cms.gateway.home_pages.CmsHomePageController.getHomePages(source: Option[String])
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/getBpmModel/:id biz.lobachev.annette.bpm.gateway.BpmModelController.getBpmModel(id: String, withXml: Option[Boolean])
POST    /api/annette/v1/bpm/getBpmModels    biz.lobachev.annette.bpm.gateway.BpmModelController.getBpmModels(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/getDataSchema/:id biz.lobachev.annette.bpm.gateway.DataSchemaController.getDataSchema(id: String, withVariables: Option[Boolean])
POST    /api/annette/v1/bpm/getDataSchemas    biz.lobachev.annette.bpm.gateway.DataSchemaController.getDataSchemas(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/getBusinessProcess/:id biz.lobachev.annette.bpm.gateway.BusinessProcessController.getBusinessProcess(id: String, withVariables: Option[Boolean])
POST    /api/annette/v1/bpm/getBusinessProcesses    biz.lobachev.annette.bpm.gateway.BusinessProcessController.getBusinessProcesses(withVariables: Option[Boolean])

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