All Downloads are FREE. Search and download functionalities are using the official Maven repository.

shi_2.12.16.22.0.source-code.routes Maven / Gradle / Ivy

The newest version!

GET     /                                                     otoroshi.controllers.BackOfficeController.index
GET     /robots.txt                                           otoroshi.controllers.BackOfficeController.robotTxt
GET     /robot.txt                                            otoroshi.controllers.BackOfficeController.robotTxt
GET     /error                                                otoroshi.controllers.BackOfficeController.error(message: Option[String])
GET     /auth0error                                           otoroshi.controllers.AuthController.auth0error(error: Option[String], error_description: Option[String])

GET     /health                                               otoroshi.controllers.HealthController.health()
GET     /metrics                                              otoroshi.controllers.HealthController.processMetrics()
GET     /live                                                 otoroshi.controllers.HealthController.live()
GET     /ready                                                otoroshi.controllers.HealthController.ready()
GET     /startup                                              otoroshi.controllers.HealthController.startup()

# WebAuthn URLs
POST    /bo/webauthn/register/start                           otoroshi.controllers.U2FController.webAuthnRegistrationStart()
POST    /bo/webauthn/register/finish                          otoroshi.controllers.U2FController.webAuthnRegistrationFinish()
POST    /bo/webauthn/login/start                              otoroshi.controllers.U2FController.webAuthnLoginStart()
POST    /bo/webauthn/login/finish                             otoroshi.controllers.U2FController.webAuthnLoginFinish()
# GET     /bo/webauthn/admins                                 otoroshi.controllers.U2FController.webAuthnAdmins()
# DELETE  /bo/webauthn/admins/:username/:id                   otoroshi.controllers.U2FController.webAuthnDeleteAdmin(username, id)

# Simple Login URLs
GET     /bo/simple/login                                      otoroshi.controllers.U2FController.loginPage()
POST    /bo/simple/login                                      otoroshi.controllers.U2FController.simpleLogin()
# POST    /bo/simple/admins                                   otoroshi.controllers.U2FController.registerSimpleAdmin()
# GET     /bo/simple/admins                                   otoroshi.controllers.U2FController.simpleAdmins()
# DELETE  /bo/simple/admins/:username                         otoroshi.controllers.U2FController.deleteAdmin(username)

# BackOffice URLs
GET     /bo/cacert                                            otoroshi.controllers.BackOfficeController.caCert()
GET     /bo/dashboard                                         otoroshi.controllers.BackOfficeController.dashboard
GET     /bo/dashboard/                                        otoroshi.controllers.BackOfficeController.dashboard
GET     /bo/dashboard/*ui                                     otoroshi.controllers.BackOfficeController.dashboardRoutes(ui)
GET     /bo/api/lines/:lineId/:serviceId/docframe             otoroshi.controllers.BackOfficeController.documentationFrame(lineId, serviceId)
GET     /bo/api/lines/:lineId/:serviceId/docdesc              otoroshi.controllers.BackOfficeController.documentationFrameDescriptor(lineId, serviceId)
POST    /bo/api/search/services                               otoroshi.controllers.BackOfficeController.searchServicesApi()
GET     /bo/api/version                                       otoroshi.controllers.BackOfficeController.version()
GET     /bo/api/metrics                                       otoroshi.controllers.HealthController.backofficeMetrics()
GET     /bo/api/env                                           otoroshi.controllers.BackOfficeController.getEnv()
GET     /bo/api/apps                                          otoroshi.controllers.BackOfficeController.cleverApps()
GET     /bo/api/eureka-servers                                otoroshi.controllers.BackOfficeController.eurekaServers()
GET     /bo/api/external-eureka-servers                       otoroshi.controllers.BackOfficeController.externalEurekaServers()
GET     /bo/api/eureka-servers/:id/apps                       otoroshi.controllers.BackOfficeController.eurekaServerApps(id)
# GET     /bo/api/sessions                                    otoroshi.controllers.BackOfficeController.sessions()
# DELETE  /bo/api/sessions/:id                                otoroshi.controllers.BackOfficeController.discardSession(id)
# DELETE  /bo/api/sessions                                    otoroshi.controllers.BackOfficeController.discardAllSessions()
# GET     /bo/api/papps/sessions                              otoroshi.controllers.BackOfficeController.privateAppsSessions()
# DELETE  /bo/api/papps/sessions/:id                          otoroshi.controllers.BackOfficeController.discardPrivateAppsSession(id)
# DELETE  /bo/api/papps/sessions                              otoroshi.controllers.BackOfficeController.discardAllPrivateAppsSessions()
POST    /bo/api/ui-mode                                       otoroshi.controllers.BackOfficeController.updateUiMode()
POST    /bo/api/panic                                         otoroshi.controllers.BackOfficeController.panicMode()
GET     /bo/api/events/audit                                  otoroshi.controllers.BackOfficeController.auditEvents()
GET     /bo/api/events/alert                                  otoroshi.controllers.BackOfficeController.alertEvents()
GET     /bo/api/loggers/:name/level                           otoroshi.controllers.BackOfficeController.getLogLevel(name)
PUT     /bo/api/loggers/:name/level                           otoroshi.controllers.BackOfficeController.changeLogLevel(name, newLevel: Option[String])
GET     /bo/api/loggers                                       otoroshi.controllers.BackOfficeController.getAllLoggers()
GET     /bo/api/services/top10                                otoroshi.controllers.BackOfficeController.mostCalledServices()
GET     /bo/api/services/map                                  otoroshi.controllers.BackOfficeController.servicesMap()
DELETE  /bo/api/services/:id/circuitbreakers                  otoroshi.controllers.BackOfficeController.resetCircuitBreakers(id)
POST    /bo/api/_anonymous_reporting                          otoroshi.controllers.BackOfficeController.anonymousReporting()

GET     /bo/api/bodies/:serviceId/:requestId                  otoroshi.controllers.BackOfficeController.fetchBodiesFor(serviceId, requestId)

GET     /bo/api/groups-and-services                           otoroshi.controllers.BackOfficeController.fetchGroupsAndServices()
GET     /bo/api/apikeys-for/:serviceId                        otoroshi.controllers.BackOfficeController.fetchApikeysForGroupAndService(serviceId)

POST    /bo/api/certificates/_data                            otoroshi.controllers.BackOfficeController.certificateData()
POST    /bo/api/certificates/_valid                           otoroshi.controllers.BackOfficeController.certificateIsValid()
POST    /bo/api/certificates/_selfSigned                      otoroshi.controllers.BackOfficeController.selfSignedCert()
POST    /bo/api/certificates/_selfSignedClient                otoroshi.controllers.BackOfficeController.selfSignedClientCert()
POST    /bo/api/certificates/_caSigned                        otoroshi.controllers.BackOfficeController.caSignedCert()
POST    /bo/api/certificates/_caSignedClient                  otoroshi.controllers.BackOfficeController.caSignedClientCert()
POST    /bo/api/certificates/_ca                              otoroshi.controllers.BackOfficeController.caCert()
POST    /bo/api/certificates/:id/_renew                       otoroshi.controllers.BackOfficeController.renew(id)
POST    /bo/api/certificates/_letsencrypt                     otoroshi.controllers.BackOfficeController.createLetsEncryptCertificate()
POST    /bo/api/certificates/_importP12                       otoroshi.controllers.BackOfficeController.importP12File()
POST    /bo/api/certificates/_createCertificate               otoroshi.controllers.BackOfficeController.createCertificate()
POST    /bo/api/certificates/_createCSR                       otoroshi.controllers.BackOfficeController.createCsr()

POST    /bo/api/auth/:id/_check                               otoroshi.controllers.BackOfficeController.checkExistingLdapConnection(id)
POST    /bo/api/auth/_check                                   otoroshi.controllers.BackOfficeController.checkLdapConnection()
POST    /bo/api/elastic/_check                                otoroshi.controllers.BackOfficeController.checkElasticsearchConnection()
POST    /bo/api/elastic/_apply_template                       otoroshi.controllers.BackOfficeController.applyElasticsearchTemplate()
POST    /bo/api/elastic/_template                             otoroshi.controllers.BackOfficeController.elasticTemplate()
GET     /bo/api/elastic/_version                              otoroshi.controllers.BackOfficeController.elasticVersion()

POST    /bo/api/oidc/_fetchConfig                             otoroshi.controllers.BackOfficeController.fetchOpenIdConfiguration()
POST    /bo/api/saml/_fetchConfig                             otoroshi.controllers.BackOfficeController.fetchSAMLConfiguration()

PUT    /bo/api/backoffice/flags                               otoroshi.controllers.BackOfficeController.writeFlags()
GET    /bo/api/backoffice/flags                               otoroshi.controllers.BackOfficeController.getFlags()

POST   /bo/api/tryit                                          otoroshi.next.controllers.TryItController.call(entity: Option[String])
POST   /bo/api/data-exporter/kafkatryit                       otoroshi.next.controllers.TryItController.kafkaDataExporterTryIt()

GET     /bo/api/graphqlproxy                                  otoroshi.controllers.BackOfficeController.graphqlProxy()
POST    /bo/api/graphqlproxy                                  otoroshi.controllers.BackOfficeController.graphqlProxy()
PUT     /bo/api/graphqlproxy                                  otoroshi.controllers.BackOfficeController.graphqlProxy()
DELETE  /bo/api/graphqlproxy                                  otoroshi.controllers.BackOfficeController.graphqlProxy()
PATCH   /bo/api/graphqlproxy                                  otoroshi.controllers.BackOfficeController.graphqlProxy()

GET     /bo/api/routes/:routeId/entries                       otoroshi.controllers.BackOfficeController.routeEntries(routeId: String)
GET     /bo/api/routes/:routeId/ports                         otoroshi.controllers.BackOfficeController.ports(routeId: String)
POST    /bo/api/graphql_to_json                               otoroshi.controllers.BackOfficeController.graphQLToJson()
POST    /bo/api/json_to_graphql_schema                        otoroshi.controllers.BackOfficeController.jsonToGraphqlSchema()
POST    /bo/api/json_to_yaml                                  otoroshi.controllers.BackOfficeController.toYaml()
GET     /bo/api/plugins/wasm                                  otoroshi.controllers.BackOfficeController.wasmFiles()
POST    /bo/api/plugins/wasm                                  otoroshi.controllers.BackOfficeController.getWasmFilesFromBodyConfiguration()
GET     /bo/api/test_match_and_project_input                  otoroshi.controllers.BackOfficeController.testFilteringAndProjectionInputDoc()
POST    /bo/api/test_match_and_project                        otoroshi.controllers.BackOfficeController.testFilteringAndProjection()

GET     /bo/api/me/preferences/:id                            otoroshi.controllers.BackOfficeController.getUserPreference(id)
GET     /bo/api/me/preferences                                otoroshi.controllers.BackOfficeController.getUserPreferences()
POST    /bo/api/me/preferences/:id                            otoroshi.controllers.BackOfficeController.setUserPreference(id)
POST    /bo/api/me/preferences                                otoroshi.controllers.BackOfficeController.setUserPreferences()
DELETE  /bo/api/me/preferences/:id                            otoroshi.controllers.BackOfficeController.clearUserPreference(id)
DELETE  /bo/api/me/preferences                                otoroshi.controllers.BackOfficeController.clearUserPreferences()

# Admin API proxy
GET     /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)
POST    /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)
PUT     /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)
DELETE  /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)
PATCH   /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)
HEAD    /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)
OPTIONS /bo/api/proxy/*path                                   otoroshi.controllers.BackOfficeController.proxyAdminApi(path)

# Private Apps URLs
GET     /privateapps/error                                    otoroshi.controllers.PrivateAppsController.error(message: Option[String])
GET     /privateapps/home                                     otoroshi.controllers.PrivateAppsController.home
GET     /privateapps/redirect                                 otoroshi.controllers.PrivateAppsController.redirect

DELETE  /privateapps/registration                             otoroshi.controllers.PrivateAppsController.selfRegistrationDelete()
POST    /privateapps/register/start                           otoroshi.controllers.PrivateAppsController.selfRegistrationStart()
POST    /privateapps/register/finish                          otoroshi.controllers.PrivateAppsController.selfRegistrationFinish()
GET     /privateapps/profile                                  otoroshi.controllers.PrivateAppsController.selfUpdateProfilePage()
POST    /privateapps/profile                                  otoroshi.controllers.PrivateAppsController.selfUpdateProfile()
POST    /api/privateapps/sessions/send/:id/:username          otoroshi.controllers.PrivateAppsController.sendSelfUpdateLink(id, username)
POST    /api/privateapps/sessions/:id/:username               otoroshi.controllers.PrivateAppsController.registerSession(id, username)

OPTIONS /privateapps/generic/login                            otoroshi.controllers.AuthController.confidentialAppLoginPageOptions()
GET     /privateapps/generic/login                            otoroshi.controllers.AuthController.confidentialAppLoginPage()
GET     /privateapps/generic/logout                           otoroshi.controllers.AuthController.confidentialAppLogout()
GET     /privateapps/generic/callback                         otoroshi.controllers.AuthController.confidentialAppCallback()
POST    /privateapps/generic/callback                         otoroshi.controllers.AuthController.confidentialAppCallback()
GET     /privateapps/generic/choose-provider                  otoroshi.controllers.AuthController.confidentialAppMultiLoginPage()
POST    /privateapps/generic/choose-provider                  otoroshi.controllers.AuthController.confidentialAppMultiLoginPage()
GET     /privateapps/generic/simple-login                     otoroshi.controllers.AuthController.confidentialAppSimpleLoginPage()
POST    /privateapps/generic/simple-login                     otoroshi.controllers.AuthController.confidentialAppSimpleLoginPage()


GET     /backoffice/auth0/login                               otoroshi.controllers.AuthController.backOfficeLogin()
GET     /backoffice/auth0/logout                              otoroshi.controllers.AuthController.backOfficeLogout()
GET     /backoffice/auth0/callback                            otoroshi.controllers.AuthController.backOfficeCallback(error: Option[String], error_description: Option[String])
POST    /backoffice/auth0/callback                            otoroshi.controllers.AuthController.backOfficeCallback(error: Option[String], error_description: Option[String])

# Admin API

GET     /api/infos                                            otoroshi.controllers.adminapi.InfosApiController.infos()
GET     /api/version                                          otoroshi.controllers.adminapi.InfosApiController.version()

## new models
GET     /api/new/apikey                                       otoroshi.controllers.adminapi.TemplatesController.initiateApiKey(groupId: Option[String])
GET     /api/new/service                                      otoroshi.controllers.adminapi.TemplatesController.initiateService()
GET     /api/new/tcp/service                                  otoroshi.controllers.adminapi.TemplatesController.initiateTcpService()
GET     /api/new/group                                        otoroshi.controllers.adminapi.TemplatesController.initiateServiceGroup()
POST    /api/new/resources                                    otoroshi.controllers.adminapi.TemplatesController.initiateResources()


# Create entity from template
POST    /api/tcp/services/_template                           otoroshi.controllers.adminapi.TemplatesController.createFromTemplate(entity = "tcp/services")
POST    /api/admins/simple/_template                          otoroshi.controllers.adminapi.TemplatesController.createFromTemplate(entity = "admins/simple")
POST    /api/admins/webauthn/_template                        otoroshi.controllers.adminapi.TemplatesController.createFromTemplate(entity = "admins/webauthn")
POST    /api/:entity/_template                                otoroshi.controllers.adminapi.TemplatesController.createFromTemplate(entity)

## ApiKeys
GET     /api/apikeys/_template                                otoroshi.controllers.adminapi.TemplatesController.initiateApiKey(groupId: Option[String])
POST    /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkCreateAction()
PUT     /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkUpdateAction()
PATCH   /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkPatchAction()
DELETE  /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkDeleteAction()
GET     /api/apikeys/:id/quotas                               otoroshi.controllers.adminapi.ApiKeysController.apiKeyQuotas(id)
DELETE  /api/apikeys/:id/quotas                               otoroshi.controllers.adminapi.ApiKeysController.resetApiKeyQuotas(id)
GET     /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.findEntityByIdAction(id)
DELETE  /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.deleteEntityAction(id)
PUT     /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.updateEntityAction(id)
PATCH   /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.patchEntityAction(id)
GET     /api/apikeys                                          otoroshi.controllers.adminapi.ApiKeysController.findAllEntitiesAction()
POST    /api/apikeys                                          otoroshi.controllers.adminapi.ApiKeysController.createAction()

GET     /api/apikeys/_template                                otoroshi.controllers.adminapi.TemplatesController.initiateApiKey(groupId: Option[String])
POST    /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkCreateAction()
PUT     /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkUpdateAction()
PATCH   /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkPatchAction()
DELETE  /api/apikeys/_bulk                                    otoroshi.controllers.adminapi.ApiKeysController.bulkDeleteAction()
GET     /api/apikeys/:id/bearer                               otoroshi.controllers.adminapi.ApiKeysController.getBearerValue(id)
GET     /api/apikeys/:id/quotas                               otoroshi.controllers.adminapi.ApiKeysController.apiKeyQuotas(id)
DELETE  /api/apikeys/:id/quotas                               otoroshi.controllers.adminapi.ApiKeysController.resetApiKeyQuotas(id)
GET     /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.findEntityByIdAction(id)
DELETE  /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.deleteEntityAction(id)
PUT     /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.updateEntityAction(id)
PATCH   /api/apikeys/:id                                      otoroshi.controllers.adminapi.ApiKeysController.patchEntityAction(id)
GET     /api/apikeys                                          otoroshi.controllers.adminapi.ApiKeysController.findAllEntitiesAction()
GET     /api/services/:serviceId/apikeys/:clientId/quotas     otoroshi.controllers.adminapi.ApiKeysFromServiceController.apiKeyQuotas(serviceId, clientId)
DELETE  /api/services/:serviceId/apikeys/:clientId/quotas     otoroshi.controllers.adminapi.ApiKeysFromServiceController.resetApiKeyQuotas(serviceId, clientId)
#GET     /api/services/:serviceId/apikeys/:clientId/group      otoroshi.controllers.adminapi.ApiKeysFromServiceController.apiKeyGroup(serviceId, clientId)
#PUT     /api/services/:serviceId/apikeys/:clientId/group      otoroshi.controllers.adminapi.ApiKeysFromServiceController.updateApiKeyGroup(serviceId, clientId)
GET     /api/services/:serviceId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromServiceController.apiKey(serviceId, clientId)
PUT     /api/services/:serviceId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromServiceController.updateApiKey(serviceId, clientId)
PATCH   /api/services/:serviceId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromServiceController.patchApiKey(serviceId, clientId)
DELETE  /api/services/:serviceId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromServiceController.deleteApiKey(serviceId, clientId)
POST    /api/services/:serviceId/apikeys                      otoroshi.controllers.adminapi.ApiKeysFromServiceController.createApiKey(serviceId)
GET     /api/services/:serviceId/apikeys                      otoroshi.controllers.adminapi.ApiKeysFromServiceController.apiKeys(serviceId)

GET     /api/routes/:routeId/apikeys/:clientId/quotas     otoroshi.controllers.adminapi.ApiKeysFromRouteController.apiKeyQuotas(routeId, clientId)
DELETE  /api/routes/:routeId/apikeys/:clientId/quotas     otoroshi.controllers.adminapi.ApiKeysFromRouteController.resetApiKeyQuotas(routeId, clientId)
GET     /api/routes/:routeId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromRouteController.apiKey(routeId, clientId)
PUT     /api/routes/:routeId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromRouteController.updateApiKey(routeId, clientId)
PATCH   /api/routes/:routeId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromRouteController.patchApiKey(routeId, clientId)
DELETE  /api/routes/:routeId/apikeys/:clientId            otoroshi.controllers.adminapi.ApiKeysFromRouteController.deleteApiKey(routeId, clientId)
POST    /api/routes/:routeId/apikeys                      otoroshi.controllers.adminapi.ApiKeysFromRouteController.createApiKey(routeId)
GET     /api/routes/:routeId/apikeys                      otoroshi.controllers.adminapi.ApiKeysFromRouteController.apiKeys(routeId)

GET     /api/groups/:groupId/apikeys/:clientId/quotas         otoroshi.controllers.adminapi.ApiKeysFromGroupController.apiKeyFromGroupQuotas(groupId, clientId)
DELETE  /api/groups/:groupId/apikeys/:clientId/quotas         otoroshi.controllers.adminapi.ApiKeysFromGroupController.resetApiKeyFromGroupQuotas(groupId, clientId)
GET     /api/groups/:groupId/apikeys/:clientId                otoroshi.controllers.adminapi.ApiKeysFromGroupController.apiKeyFromGroup(groupId, clientId)
PUT     /api/groups/:groupId/apikeys/:clientId                otoroshi.controllers.adminapi.ApiKeysFromGroupController.updateApiKeyFromGroup(groupId, clientId)
PATCH   /api/groups/:groupId/apikeys/:clientId                otoroshi.controllers.adminapi.ApiKeysFromGroupController.patchApiKeyFromGroup(groupId, clientId)
DELETE  /api/groups/:groupId/apikeys/:clientId                otoroshi.controllers.adminapi.ApiKeysFromGroupController.deleteApiKeyFromGroup(groupId, clientId)
POST    /api/groups/:groupId/apikeys                          otoroshi.controllers.adminapi.ApiKeysFromGroupController.createApiKeyFromGroup(groupId)
GET     /api/groups/:groupId/apikeys                          otoroshi.controllers.adminapi.ApiKeysFromGroupController.apiKeysFromGroup(groupId)
GET     /api/groups/:groupId/status                           otoroshi.controllers.adminapi.AnalyticsController.groupStatus(groupId, from: Option[String], to: Option[String])

## Services
GET     /api/services/_template                               otoroshi.controllers.adminapi.TemplatesController.initiateService()
GET     /api/services/:serviceId/template                     otoroshi.controllers.adminapi.ServicesController.serviceTemplate(serviceId)
PUT     /api/services/:serviceId/template                     otoroshi.controllers.adminapi.ServicesController.updateServiceTemplate(serviceId)
POST    /api/services/:serviceId/template                     otoroshi.controllers.adminapi.ServicesController.createServiceTemplate(serviceId)
DELETE  /api/services/:serviceId/template                     otoroshi.controllers.adminapi.ServicesController.deleteServiceTemplate(serviceId)
GET     /api/services/:serviceId/targets                      otoroshi.controllers.adminapi.ServicesController.serviceTargets(serviceId)
POST    /api/services/:serviceId/targets                      otoroshi.controllers.adminapi.ServicesController.serviceAddTarget(serviceId)
DELETE  /api/services/:serviceId/targets                      otoroshi.controllers.adminapi.ServicesController.serviceDeleteTarget(serviceId)
PATCH   /api/services/:serviceId/targets                      otoroshi.controllers.adminapi.ServicesController.updateServiceTargets(serviceId)
GET     /api/services/:serviceId/live                         otoroshi.controllers.adminapi.StatsController.serviceLiveStats(serviceId, every: Option[Int])
GET     /api/services/:serviceId/stats                        otoroshi.controllers.adminapi.AnalyticsController.serviceStats(serviceId, from: Option[String], to: Option[String])
GET     /api/services/:serviceId/events                       otoroshi.controllers.adminapi.AnalyticsController.serviceEvents(serviceId, from: Option[String], to: Option[String])
GET     /api/services/:serviceId/status                       otoroshi.controllers.adminapi.AnalyticsController.serviceStatus(serviceId, from: Option[String], to: Option[String])
GET     /api/services/:serviceId/health                       otoroshi.controllers.adminapi.ServicesController.serviceHealth(serviceId)
GET     /api/services/:serviceId/response                     otoroshi.controllers.adminapi.AnalyticsController.serviceResponseTime(serviceId, from: Option[String], to: Option[String])
GET     /api/services/:serviceId/canary                       otoroshi.controllers.adminapi.CanaryController.serviceCanaryMembers(serviceId)
DELETE  /api/services/:serviceId/canary                       otoroshi.controllers.adminapi.CanaryController.resetServiceCanaryMembers(serviceId)
# GET     /api/services/:serviceId                              otoroshi.controllers.adminapi.ServicesController.service(serviceId)
# PUT     /api/services/:serviceId                              otoroshi.controllers.adminapi.ServicesController.updateService(serviceId)
# PATCH   /api/services/:serviceId                              otoroshi.controllers.adminapi.ServicesController.patchService(serviceId)
# DELETE  /api/services/:serviceId                              otoroshi.controllers.adminapi.ServicesController.deleteService(serviceId)
# GET     /api/services                                         otoroshi.controllers.adminapi.ServicesController.allServices()
# POST    /api/services                                         otoroshi.controllers.adminapi.ServicesController.createService()
POST    /api/services/_bulk                                   otoroshi.controllers.adminapi.ServicesController.bulkCreateAction()
PUT     /api/services/_bulk                                   otoroshi.controllers.adminapi.ServicesController.bulkUpdateAction()
PATCH   /api/services/_bulk                                   otoroshi.controllers.adminapi.ServicesController.bulkPatchAction()
DELETE  /api/services/_bulk                                   otoroshi.controllers.adminapi.ServicesController.bulkDeleteAction()
GET     /api/services/:id/route                               otoroshi.controllers.adminapi.ServicesController.convertAsRoute(id)
POST    /api/services/:id/route                               otoroshi.controllers.adminapi.ServicesController.importAsRoute(id)
GET     /api/services/:id                                     otoroshi.controllers.adminapi.ServicesController.findEntityByIdAction(id)
DELETE  /api/services/:id                                     otoroshi.controllers.adminapi.ServicesController.deleteEntityAction(id)
PUT     /api/services/:id                                     otoroshi.controllers.adminapi.ServicesController.updateEntityAction(id)
PATCH   /api/services/:id                                     otoroshi.controllers.adminapi.ServicesController.patchEntityAction(id)
GET     /api/services                                         otoroshi.controllers.adminapi.ServicesController.findAllEntitiesAction()
POST    /api/services                                         otoroshi.controllers.adminapi.ServicesController.createAction()

## ServiceGroup
GET     /api/groups/_template                                 otoroshi.controllers.adminapi.TemplatesController.initiateServiceGroup()
# GET     /api/groups/:serviceGroupId/services                  otoroshi.controllers.adminapi.ServiceGroupController.serviceGroupServices(serviceGroupId)
# GET     /api/groups/:serviceGroupId                           otoroshi.controllers.adminapi.ServiceGroupController.serviceGroup(serviceGroupId)
# DELETE  /api/groups/:serviceGroupId                           otoroshi.controllers.adminapi.ServiceGroupController.deleteGroup(serviceGroupId)
# PUT     /api/groups/:serviceGroupId                           otoroshi.controllers.adminapi.ServiceGroupController.updateGroup(serviceGroupId)
# PATCH   /api/groups/:serviceGroupId                           otoroshi.controllers.adminapi.ServiceGroupController.patchGroup(serviceGroupId)
# GET     /api/groups                                           otoroshi.controllers.adminapi.ServiceGroupController.allServiceGroups()
# POST    /api/groups                                           otoroshi.controllers.adminapi.ServiceGroupController.createGroup()
POST    /api/groups/_bulk                                     otoroshi.controllers.adminapi.ServiceGroupController.bulkCreateAction()
PUT     /api/groups/_bulk                                     otoroshi.controllers.adminapi.ServiceGroupController.bulkUpdateAction()
PATCH   /api/groups/_bulk                                     otoroshi.controllers.adminapi.ServiceGroupController.bulkPatchAction()
DELETE  /api/groups/_bulk                                     otoroshi.controllers.adminapi.ServiceGroupController.bulkDeleteAction()
GET     /api/groups/:id/services                              otoroshi.controllers.adminapi.ServiceGroupController.serviceGroupServices(id)
GET     /api/groups/:id                                       otoroshi.controllers.adminapi.ServiceGroupController.findEntityByIdAction(id)
DELETE  /api/groups/:id                                       otoroshi.controllers.adminapi.ServiceGroupController.deleteEntityAction(id)
PUT     /api/groups/:id                                       otoroshi.controllers.adminapi.ServiceGroupController.updateEntityAction(id)
PATCH   /api/groups/:id                                       otoroshi.controllers.adminapi.ServiceGroupController.patchEntityAction(id)
GET     /api/groups                                           otoroshi.controllers.adminapi.ServiceGroupController.findAllEntitiesAction()
POST    /api/groups                                           otoroshi.controllers.adminapi.ServiceGroupController.createAction()

## Certificates
GET     /api/certificates/_template                           otoroshi.controllers.adminapi.TemplatesController.initiateCertificate()
POST    /api/certificates/:certId/_renew                      otoroshi.controllers.adminapi.CertificatesController.renewCert(certId)
# GET     /api/certificates/:certId                             otoroshi.controllers.adminapi.CertificatesController.oneCert(certId)
# DELETE  /api/certificates/:certId                             otoroshi.controllers.adminapi.CertificatesController.deleteCert(certId)
# PUT     /api/certificates/:certId                             otoroshi.controllers.adminapi.CertificatesController.updateCert(certId)
# PATCH   /api/certificates/:certId                             otoroshi.controllers.adminapi.CertificatesController.patchCert(certId)
# GET     /api/certificates                                     otoroshi.controllers.adminapi.CertificatesController.allCerts()
# POST    /api/certificates                                     otoroshi.controllers.adminapi.CertificatesController.createCert()
POST    /api/certificates/_bulk                               otoroshi.controllers.adminapi.CertificatesController.bulkCreateAction()
PUT     /api/certificates/_bulk                               otoroshi.controllers.adminapi.CertificatesController.bulkUpdateAction()
PATCH   /api/certificates/_bulk                               otoroshi.controllers.adminapi.CertificatesController.bulkPatchAction()
DELETE  /api/certificates/_bulk                               otoroshi.controllers.adminapi.CertificatesController.bulkDeleteAction()
GET     /api/certificates/:id                                 otoroshi.controllers.adminapi.CertificatesController.findEntityByIdAction(id)
DELETE  /api/certificates/:id                                 otoroshi.controllers.adminapi.CertificatesController.deleteEntityAction(id)
PUT     /api/certificates/:id                                 otoroshi.controllers.adminapi.CertificatesController.updateEntityAction(id)
PATCH   /api/certificates/:id                                 otoroshi.controllers.adminapi.CertificatesController.patchEntityAction(id)
POST    /api/certificates/_bundle                             otoroshi.controllers.adminapi.PkiController.importBundle()
GET     /api/certificates                                     otoroshi.controllers.adminapi.CertificatesController.findAllEntitiesAction()
POST    /api/certificates                                     otoroshi.controllers.adminapi.CertificatesController.createAction()

POST    /api/pki/certs/_letencrypt                            otoroshi.controllers.adminapi.PkiController.genLetsEncryptCert()
POST    /api/pki/certs/_p12                                   otoroshi.controllers.adminapi.PkiController.importCertFromP12()
POST    /api/pki/certs/_valid                                 otoroshi.controllers.adminapi.PkiController.certificateIsValid()
POST    /api/pki/certs/_data                                  otoroshi.controllers.adminapi.PkiController.certificateData()
POST    /api/pki/certs                                        otoroshi.controllers.adminapi.PkiController.genSelfSignedCert()
POST    /api/pki/csrs                                         otoroshi.controllers.adminapi.PkiController.genCsr()
POST    /api/pki/keys                                         otoroshi.controllers.adminapi.PkiController.genKeyPair()
POST    /api/pki/cas                                          otoroshi.controllers.adminapi.PkiController.genSelfSignedCA()
POST    /api/pki/cas/:ca/certs/_sign                          otoroshi.controllers.adminapi.PkiController.signCert(ca)
POST    /api/pki/cas/:ca/certs                                otoroshi.controllers.adminapi.PkiController.genCert(ca)
POST    /api/pki/cas/:ca/cas                                  otoroshi.controllers.adminapi.PkiController.genSubCA(ca)

GET     /api/lines/:line/services                             otoroshi.controllers.adminapi.ServicesController.servicesForALine(line)
GET     /api/lines                                            otoroshi.controllers.adminapi.ServicesController.allLines()

GET     /api/live/host                                        otoroshi.controllers.adminapi.StatsController.hostMetrics()
GET     /api/live/:id                                         otoroshi.controllers.adminapi.StatsController.serviceLiveStats(id, every: Option[Int])
GET     /api/live                                             otoroshi.controllers.adminapi.StatsController.globalLiveStats()

GET     /api/globalconfig/_template                           otoroshi.controllers.adminapi.TemplatesController.initiateGlobalConfig()
GET     /api/globalconfig                                     otoroshi.controllers.adminapi.GlobalConfigController.globalConfig(fields: Option[String])
PUT     /api/globalconfig                                     otoroshi.controllers.adminapi.GlobalConfigController.updateGlobalConfig()
PATCH   /api/globalconfig                                     otoroshi.controllers.adminapi.GlobalConfigController.patchGlobalConfig()

GET     /api/otoroshi.json                                    otoroshi.controllers.adminapi.ImportExportController.fullExport()
POST    /api/otoroshi.json                                    otoroshi.controllers.adminapi.ImportExportController.fullImport()
POST    /api/import                                           otoroshi.controllers.adminapi.ImportExportController.fullImportFromFile()

POST    /api/snowmonkey/_start                                otoroshi.controllers.adminapi.SnowMonkeyController.startSnowMonkey()
POST    /api/snowmonkey/_stop                                 otoroshi.controllers.adminapi.SnowMonkeyController.stopSnowMonkey()
DELETE  /api/snowmonkey/outages                               otoroshi.controllers.adminapi.SnowMonkeyController.resetSnowMonkey()
GET     /api/snowmonkey/outages                               otoroshi.controllers.adminapi.SnowMonkeyController.getSnowMonkeyOutages()
GET     /api/snowmonkey/config                                otoroshi.controllers.adminapi.SnowMonkeyController.getSnowMonkeyConfig()
PUT     /api/snowmonkey/config                                otoroshi.controllers.adminapi.SnowMonkeyController.updateSnowMonkey()
PATCH   /api/snowmonkey/config                                otoroshi.controllers.adminapi.SnowMonkeyController.patchSnowMonkey()

GET     /api/verifiers/_template                              otoroshi.controllers.adminapi.TemplatesController.initiateJwtVerifier()
# GET     /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.findGlobalJwtVerifiersById(id)
# DELETE  /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.deleteGlobalJwtVerifier(id)
# PUT     /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.updateGlobalJwtVerifier(id)
# PATCH   /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.patchGlobalJwtVerifier(id)
# GET     /api/verifiers                                        otoroshi.controllers.adminapi.JwtVerifierController.findAllGlobalJwtVerifiers()
# POST    /api/verifiers                                        otoroshi.controllers.adminapi.JwtVerifierController.createGlobalJwtVerifier()
POST    /api/verifiers/_bulk                                  otoroshi.controllers.adminapi.JwtVerifierController.bulkCreateAction()
PUT     /api/verifiers/_bulk                                  otoroshi.controllers.adminapi.JwtVerifierController.bulkUpdateAction()
PATCH   /api/verifiers/_bulk                                  otoroshi.controllers.adminapi.JwtVerifierController.bulkPatchAction()
DELETE  /api/verifiers/_bulk                                  otoroshi.controllers.adminapi.JwtVerifierController.bulkDeleteAction()
GET     /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.findEntityByIdAction(id)
DELETE  /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.deleteEntityAction(id)
PUT     /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.updateEntityAction(id)
PATCH   /api/verifiers/:id                                    otoroshi.controllers.adminapi.JwtVerifierController.patchEntityAction(id)
GET     /api/verifiers                                        otoroshi.controllers.adminapi.JwtVerifierController.findAllEntitiesAction()
POST    /api/verifiers                                        otoroshi.controllers.adminapi.JwtVerifierController.createAction()

# GET     /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.findClientValidatorById(id)
# DELETE  /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.deleteClientValidator(id)
# PUT     /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.updateClientValidator(id)
# PATCH   /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.patchClientValidator(id)
# GET     /api/client-validators                                otoroshi.controllers.adminapi.ClientValidatorsController.findAllClientValidators()
# POST    /api/client-validators                                otoroshi.controllers.adminapi.ClientValidatorsController.createClientValidator()
POST    /api/client-validators/_bulk                          otoroshi.controllers.adminapi.ClientValidatorsController.bulkCreateAction()
PUT     /api/client-validators/_bulk                          otoroshi.controllers.adminapi.ClientValidatorsController.bulkUpdateAction()
PATCH   /api/client-validators/_bulk                          otoroshi.controllers.adminapi.ClientValidatorsController.bulkPatchAction()
DELETE  /api/client-validators/_bulk                          otoroshi.controllers.adminapi.ClientValidatorsController.bulkDeleteAction()
GET     /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.findEntityByIdAction(id)
DELETE  /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.deleteEntityAction(id)
PUT     /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.updateEntityAction(id)
PATCH   /api/client-validators/:id                            otoroshi.controllers.adminapi.ClientValidatorsController.patchEntityAction(id)
GET     /api/client-validators                                otoroshi.controllers.adminapi.ClientValidatorsController.findAllEntitiesAction()
POST    /api/client-validators                                otoroshi.controllers.adminapi.ClientValidatorsController.createAction()

GET     /api/auths/_template                                  otoroshi.controllers.adminapi.TemplatesController.initiateAuthModule()
GET     /api/auths/templates                                  otoroshi.controllers.adminapi.TemplatesController.findAllTemplates()
POST    /api/auths/:id/register/start                         otoroshi.controllers.adminapi.AuthModulesController.startRegistration(id)
POST    /api/auths/:id/register/finish                        otoroshi.controllers.adminapi.AuthModulesController.finishRegistration(id)
# GET     /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.findGlobalAuthModuleById(id)
# DELETE  /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.deleteGlobalAuthModule(id)
# PUT     /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.updateGlobalAuthModule(id)
# PATCH   /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.patchGlobalAuthModule(id)
# GET     /api/auths                                            otoroshi.controllers.adminapi.AuthModulesController.findAllGlobalAuthModules()
# POST    /api/auths                                            otoroshi.controllers.adminapi.AuthModulesController.createGlobalAuthModule()
POST    /api/auths/_bulk                                      otoroshi.controllers.adminapi.AuthModulesController.bulkCreateAction()
PUT     /api/auths/_bulk                                      otoroshi.controllers.adminapi.AuthModulesController.bulkUpdateAction()
PATCH   /api/auths/_bulk                                      otoroshi.controllers.adminapi.AuthModulesController.bulkPatchAction()
DELETE  /api/auths/_bulk                                      otoroshi.controllers.adminapi.AuthModulesController.bulkDeleteAction()
GET     /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.findEntityByIdAction(id)
DELETE  /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.deleteEntityAction(id)
PUT     /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.updateEntityAction(id)
PATCH   /api/auths/:id                                        otoroshi.controllers.adminapi.AuthModulesController.patchEntityAction(id)
GET     /api/auths                                            otoroshi.controllers.adminapi.AuthModulesController.findAllEntitiesAction()
POST    /api/auths                                            otoroshi.controllers.adminapi.AuthModulesController.createAction()

GET     /api/cluster/sessions/:id                             otoroshi.controllers.adminapi.ClusterController.isSessionValid(id)
POST    /api/cluster/sessions                                 otoroshi.controllers.adminapi.ClusterController.createSession()
PUT     /api/cluster/quotas                                   otoroshi.controllers.adminapi.ClusterController.updateState()
GET     /api/cluster/state/ws                                 otoroshi.controllers.adminapi.ClusterController.stateWs()
GET     /api/cluster/state                                    otoroshi.controllers.adminapi.ClusterController.readState()
POST    /api/cluster/relay                                    otoroshi.controllers.adminapi.ClusterController.relayRouting()
GET     /api/cluster/members                                  otoroshi.controllers.adminapi.ClusterController.getClusterMembers()
DELETE  /api/cluster/members                                  otoroshi.controllers.adminapi.ClusterController.clearClusterMembers()
GET     /api/cluster/live                                     otoroshi.controllers.adminapi.ClusterController.liveCluster()
GET     /api/cluster/login-tokens/:id                         otoroshi.controllers.adminapi.ClusterController.isLoginTokenValid(id)
POST    /api/cluster/login-tokens/:id                         otoroshi.controllers.adminapi.ClusterController.createLoginToken(id)
GET     /api/cluster/user-tokens/:id                          otoroshi.controllers.adminapi.ClusterController.getUserToken(id)
POST    /api/cluster/user-tokens                              otoroshi.controllers.adminapi.ClusterController.setUserToken()

GET     /api/tunnels/register                                 otoroshi.next.tunnel.TunnelController.tunnelEndpoint()
GET     /api/tunnels/infos                                    otoroshi.next.tunnel.TunnelController.infos()
GET     /api/tunnels/:tunnelId/relay                          otoroshi.next.tunnel.TunnelController.tunnelRelayWs(tunnelId)
POST    /api/tunnels/:tunnelId/relay                          otoroshi.next.tunnel.TunnelController.tunnelRelay(tunnelId)
GET     /api/tunnels                                          otoroshi.next.tunnel.TunnelController.tunnelInfos()

GET     /api/scripts/_template                                otoroshi.controllers.adminapi.TemplatesController.initiateScript()
# GET     /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.findScriptById(id)
# PUT     /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.updateScript(id)
# PATCH   /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.patchScript(id)
# DELETE  /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.deleteScript(id)
# POST    /api/scripts                                          otoroshi.controllers.adminapi.ScriptApiController.createScript()
# GET     /api/scripts                                          otoroshi.controllers.adminapi.ScriptApiController.findAllScripts()
GET     /api/scripts/_list                                    otoroshi.controllers.adminapi.ScriptApiController.findAllScriptsList()
POST    /api/scripts/_compile                                 otoroshi.controllers.adminapi.ScriptApiController.compileScript()
POST    /api/scripts/_bulk                                    otoroshi.controllers.adminapi.ScriptApiController.bulkCreateAction()
PUT     /api/scripts/_bulk                                    otoroshi.controllers.adminapi.ScriptApiController.bulkUpdateAction()
PATCH   /api/scripts/_bulk                                    otoroshi.controllers.adminapi.ScriptApiController.bulkPatchAction()
DELETE  /api/scripts/_bulk                                    otoroshi.controllers.adminapi.ScriptApiController.bulkDeleteAction()
GET     /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.findEntityByIdAction(id)
DELETE  /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.deleteEntityAction(id)
PUT     /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.updateEntityAction(id)
PATCH   /api/scripts/:id                                      otoroshi.controllers.adminapi.ScriptApiController.patchEntityAction(id)
GET     /api/scripts                                          otoroshi.controllers.adminapi.ScriptApiController.findAllEntitiesAction()
POST    /api/scripts                                          otoroshi.controllers.adminapi.ScriptApiController.createAction()

GET     /api/tcp/_template                                    otoroshi.controllers.adminapi.TemplatesController.initiateTcpService()
# GET     /api/tcp/services/:id                                 otoroshi.controllers.adminapi.TcpServiceApiController.findTcpServiceById(id)
# PUT     /api/tcp/services/:id                                 otoroshi.controllers.adminapi.TcpServiceApiController.updateTcpService(id)
# PATCH   /api/tcp/services/:id                                 otoroshi.controllers.adminapi.TcpServiceApiController.patchTcpService(id)
# DELETE  /api/tcp/services/:id                                 otoroshi.controllers.adminapi.TcpServiceApiController.deleteTcpService(id)
# POST    /api/tcp/services                                     otoroshi.controllers.adminapi.TcpServiceApiController.createTcpService()
# GET     /api/tcp/services                                     otoroshi.controllers.adminapi.TcpServiceApiController.findAllTcpServices()
POST    /api/tcp/services/_bulk                                  otoroshi.controllers.adminapi.TcpServiceApiController.bulkCreateAction()
PUT     /api/tcp/services/_bulk                                  otoroshi.controllers.adminapi.TcpServiceApiController.bulkUpdateAction()
PATCH   /api/tcp/services/_bulk                                  otoroshi.controllers.adminapi.TcpServiceApiController.bulkPatchAction()
DELETE  /api/tcp/services/_bulk                                  otoroshi.controllers.adminapi.TcpServiceApiController.bulkDeleteAction()
GET     /api/tcp/services/:id                                    otoroshi.controllers.adminapi.TcpServiceApiController.findEntityByIdAction(id)
DELETE  /api/tcp/services/:id                                    otoroshi.controllers.adminapi.TcpServiceApiController.deleteEntityAction(id)
PUT     /api/tcp/services/:id                                    otoroshi.controllers.adminapi.TcpServiceApiController.updateEntityAction(id)
PATCH   /api/tcp/services/:id                                    otoroshi.controllers.adminapi.TcpServiceApiController.patchEntityAction(id)
GET     /api/tcp/services                                        otoroshi.controllers.adminapi.TcpServiceApiController.findAllEntitiesAction()
POST    /api/tcp/services                                        otoroshi.controllers.adminapi.TcpServiceApiController.createAction()

# error templates API
POST    /api/error-templates/_bulk                                    otoroshi.controllers.adminapi.ErrorTemplatesController.bulkCreateAction()
PUT     /api/error-templates/_bulk                                    otoroshi.controllers.adminapi.ErrorTemplatesController.bulkUpdateAction()
PATCH   /api/error-templates/_bulk                                    otoroshi.controllers.adminapi.ErrorTemplatesController.bulkPatchAction()
DELETE  /api/error-templates/_bulk                                    otoroshi.controllers.adminapi.ErrorTemplatesController.bulkDeleteAction()
GET     /api/error-templates/:id                                      otoroshi.controllers.adminapi.ErrorTemplatesController.findEntityByIdAction(id)
DELETE  /api/error-templates/:id                                      otoroshi.controllers.adminapi.ErrorTemplatesController.deleteEntityAction(id)
PUT     /api/error-templates/:id                                      otoroshi.controllers.adminapi.ErrorTemplatesController.updateEntityAction(id)
PATCH   /api/error-templates/:id                                      otoroshi.controllers.adminapi.ErrorTemplatesController.patchEntityAction(id)
GET     /api/error-templates                                          otoroshi.controllers.adminapi.ErrorTemplatesController.findAllEntitiesAction()
POST    /api/error-templates                                          otoroshi.controllers.adminapi.ErrorTemplatesController.createAction()

# tenant API
GET     /api/tenants/_template                                otoroshi.controllers.adminapi.TemplatesController.initiateTenant()
POST    /api/tenants/_bulk                                    otoroshi.controllers.adminapi.TenantsController.bulkCreateAction()
PUT     /api/tenants/_bulk                                    otoroshi.controllers.adminapi.TenantsController.bulkUpdateAction()
PATCH   /api/tenants/_bulk                                    otoroshi.controllers.adminapi.TenantsController.bulkPatchAction()
DELETE  /api/tenants/_bulk                                    otoroshi.controllers.adminapi.TenantsController.bulkDeleteAction()
GET     /api/tenants/:id                                      otoroshi.controllers.adminapi.TenantsController.findEntityByIdAction(id)
DELETE  /api/tenants/:id                                      otoroshi.controllers.adminapi.TenantsController.deleteEntityAction(id)
PUT     /api/tenants/:id                                      otoroshi.controllers.adminapi.TenantsController.updateEntityAction(id)
PATCH   /api/tenants/:id                                      otoroshi.controllers.adminapi.TenantsController.patchEntityAction(id)
GET     /api/tenants                                          otoroshi.controllers.adminapi.TenantsController.findAllEntitiesAction()
POST    /api/tenants                                          otoroshi.controllers.adminapi.TenantsController.createAction()

# teams API
GET     /api/teams/_template                                otoroshi.controllers.adminapi.TemplatesController.initiateTeam()
POST    /api/teams/_bulk                                    otoroshi.controllers.adminapi.TeamsController.bulkCreateAction()
PUT     /api/teams/_bulk                                    otoroshi.controllers.adminapi.TeamsController.bulkUpdateAction()
PATCH   /api/teams/_bulk                                    otoroshi.controllers.adminapi.TeamsController.bulkPatchAction()
DELETE  /api/teams/_bulk                                    otoroshi.controllers.adminapi.TeamsController.bulkDeleteAction()
GET     /api/teams/:id                                      otoroshi.controllers.adminapi.TeamsController.findEntityByIdAction(id)
DELETE  /api/teams/:id                                      otoroshi.controllers.adminapi.TeamsController.deleteEntityAction(id)
PUT     /api/teams/:id                                      otoroshi.controllers.adminapi.TeamsController.updateEntityAction(id)
PATCH   /api/teams/:id                                      otoroshi.controllers.adminapi.TeamsController.patchEntityAction(id)
GET     /api/teams                                          otoroshi.controllers.adminapi.TeamsController.findAllEntitiesAction()
POST    /api/teams                                          otoroshi.controllers.adminapi.TeamsController.createAction()

# data exporter config API
GET     /api/data-exporter-configs/_template                otoroshi.controllers.adminapi.TemplatesController.initiateDataExporterConfig()
POST    /api/data-exporter-configs/_bulk                    otoroshi.controllers.adminapi.DataExporterConfigController.bulkCreateAction()
PUT     /api/data-exporter-configs/_bulk                    otoroshi.controllers.adminapi.DataExporterConfigController.bulkUpdateAction()
PATCH   /api/data-exporter-configs/_bulk                    otoroshi.controllers.adminapi.DataExporterConfigController.bulkPatchAction()
DELETE  /api/data-exporter-configs/_bulk                    otoroshi.controllers.adminapi.DataExporterConfigController.bulkDeleteAction()
GET     /api/data-exporter-configs/:id                      otoroshi.controllers.adminapi.DataExporterConfigController.findEntityByIdAction(id)
DELETE  /api/data-exporter-configs/:id                      otoroshi.controllers.adminapi.DataExporterConfigController.deleteEntityAction(id)
PUT     /api/data-exporter-configs/:id                      otoroshi.controllers.adminapi.DataExporterConfigController.updateEntityAction(id)
PATCH   /api/data-exporter-configs/:id                      otoroshi.controllers.adminapi.DataExporterConfigController.patchEntityAction(id)
GET     /api/data-exporter-configs                          otoroshi.controllers.adminapi.DataExporterConfigController.findAllEntitiesAction()
POST    /api/data-exporter-configs                          otoroshi.controllers.adminapi.DataExporterConfigController.createAction()

## NgRoutes
GET     /api/routes/_form                      otoroshi.next.controllers.adminapi.NgRoutesController.form()
GET     /api/routes/_template                  otoroshi.next.controllers.adminapi.NgRoutesController.initiateRoute()
POST    /api/routes/_bulk                      otoroshi.next.controllers.adminapi.NgRoutesController.bulkCreateAction()
PUT     /api/routes/_bulk                      otoroshi.next.controllers.adminapi.NgRoutesController.bulkUpdateAction()
PATCH   /api/routes/_bulk                      otoroshi.next.controllers.adminapi.NgRoutesController.bulkPatchAction()
DELETE  /api/routes/_bulk                      otoroshi.next.controllers.adminapi.NgRoutesController.bulkDeleteAction()
GET     /api/routes/:id                        otoroshi.next.controllers.adminapi.NgRoutesController.findEntityByIdAction(id)
DELETE  /api/routes/:id                        otoroshi.next.controllers.adminapi.NgRoutesController.deleteEntityAction(id)
PUT     /api/routes/:id                        otoroshi.next.controllers.adminapi.NgRoutesController.updateEntityAction(id)
PATCH   /api/routes/:id                        otoroshi.next.controllers.adminapi.NgRoutesController.patchEntityAction(id)
GET     /api/routes                            otoroshi.next.controllers.adminapi.NgRoutesController.findAllEntitiesAction()
POST    /api/routes                            otoroshi.next.controllers.adminapi.NgRoutesController.createAction()

## NgServices
GET     /api/route-compositions/_form                otoroshi.next.controllers.adminapi.NgRouteCompositionsController.form()
POST    /api/route-compositions/_openapi             otoroshi.next.controllers.adminapi.NgRouteCompositionsController.fromOpenapi()
GET     /api/route-compositions/_template            otoroshi.next.controllers.adminapi.NgRouteCompositionsController.initiateRouteComposition()
POST    /api/route-compositions/_bulk                otoroshi.next.controllers.adminapi.NgRouteCompositionsController.bulkCreateAction()
PUT     /api/route-compositions/_bulk                otoroshi.next.controllers.adminapi.NgRouteCompositionsController.bulkUpdateAction()
PATCH   /api/route-compositions/_bulk                otoroshi.next.controllers.adminapi.NgRouteCompositionsController.bulkPatchAction()
DELETE  /api/route-compositions/_bulk                otoroshi.next.controllers.adminapi.NgRouteCompositionsController.bulkDeleteAction()
GET     /api/route-compositions/:id                  otoroshi.next.controllers.adminapi.NgRouteCompositionsController.findEntityByIdAction(id)
DELETE  /api/route-compositions/:id                  otoroshi.next.controllers.adminapi.NgRouteCompositionsController.deleteEntityAction(id)
PUT     /api/route-compositions/:id                  otoroshi.next.controllers.adminapi.NgRouteCompositionsController.updateEntityAction(id)
PATCH   /api/route-compositions/:id                  otoroshi.next.controllers.adminapi.NgRouteCompositionsController.patchEntityAction(id)
GET     /api/route-compositions                      otoroshi.next.controllers.adminapi.NgRouteCompositionsController.findAllEntitiesAction()
POST    /api/route-compositions                      otoroshi.next.controllers.adminapi.NgRouteCompositionsController.createAction()

## Backends
GET     /api/backends/_form                    otoroshi.next.controllers.adminapi.NgBackendsController.form()
GET     /api/backends/_template                otoroshi.next.controllers.adminapi.NgBackendsController.initiateStoredNgBackend()
POST    /api/backends/_bulk                    otoroshi.next.controllers.adminapi.NgBackendsController.bulkCreateAction()
PUT     /api/backends/_bulk                    otoroshi.next.controllers.adminapi.NgBackendsController.bulkUpdateAction()
PATCH   /api/backends/_bulk                    otoroshi.next.controllers.adminapi.NgBackendsController.bulkPatchAction()
DELETE  /api/backends/_bulk                    otoroshi.next.controllers.adminapi.NgBackendsController.bulkDeleteAction()
GET     /api/backends/:id                      otoroshi.next.controllers.adminapi.NgBackendsController.findEntityByIdAction(id)
DELETE  /api/backends/:id                      otoroshi.next.controllers.adminapi.NgBackendsController.deleteEntityAction(id)
PUT     /api/backends/:id                      otoroshi.next.controllers.adminapi.NgBackendsController.updateEntityAction(id)
PATCH   /api/backends/:id                      otoroshi.next.controllers.adminapi.NgBackendsController.patchEntityAction(id)
GET     /api/backends                          otoroshi.next.controllers.adminapi.NgBackendsController.findAllEntitiesAction()
POST    /api/backends                          otoroshi.next.controllers.adminapi.NgBackendsController.createAction()

## Frontends
GET     /api/frontends/_form                     otoroshi.next.controllers.adminapi.NgFrontendsController.form()

## Plugins
GET     /api/plugins/categories                otoroshi.next.controllers.NgPluginsController.categories()
GET     /api/plugins/steps                     otoroshi.next.controllers.NgPluginsController.steps()
GET     /api/plugins/all                       otoroshi.next.controllers.NgPluginsController.plugins()
GET     /api/forms/_single                     otoroshi.next.controllers.NgPluginsController.form()
GET     /api/forms                             otoroshi.next.controllers.NgPluginsController.forms()

GET     /api/stats/global                                     otoroshi.controllers.adminapi.AnalyticsController.globalStats(from: Option[String], to: Option[String])
GET     /api/status/global                                    otoroshi.controllers.adminapi.AnalyticsController.globalStatus(from: Option[String], to: Option[String])
GET     /api/stats                                            otoroshi.controllers.adminapi.AnalyticsController.filterableStats(from: Option[String], to: Option[String])
GET     /api/events                                           otoroshi.controllers.adminapi.AnalyticsController.filterableEvents(from: Option[String], to: Option[String])
GET     /api/events/_template                                 otoroshi.controllers.adminapi.TemplatesController.templateSpec(eventType: String)
POST    /api/status                                           otoroshi.controllers.adminapi.AnalyticsController.servicesStatus(from: Option[String], to: Option[String])

GET     /api/experimental/certificates/_by_domain             otoroshi.next.controllers.adminapi.NgRoutesController.domainsAndCertificates()
GET     /api/entities/:entity/:id                otoroshi.next.controllers.adminapi.EntitiesController.getEntityGraph(entity: String, id: String)

GET     /api/admin-sessions                                   otoroshi.controllers.adminapi.UsersController.sessions()
DELETE  /api/admin-sessions/:id                               otoroshi.controllers.adminapi.UsersController.discardSession(id)
DELETE  /api/admin-sessions                                   otoroshi.controllers.adminapi.UsersController.discardAllSessions()

GET     /api/apps-sessions                                    otoroshi.controllers.adminapi.UsersController.privateAppsSessions()
DELETE  /api/apps-sessions/:id                                otoroshi.controllers.adminapi.UsersController.discardPrivateAppsSession(id)
DELETE  /api/apps-sessions                                    otoroshi.controllers.adminapi.UsersController.discardAllPrivateAppsSessions()

GET     /api/audit/events                                     otoroshi.controllers.adminapi.EventsController.auditEvents()
# TODO: PAGINATE
GET     /api/alert/events                                     otoroshi.controllers.adminapi.EventsController.alertEvents()
# TODO: PAGINATE

GET     /api/admins/simple/_template                          otoroshi.controllers.adminapi.TemplatesController.initiateSimpleAdmin()
POST    /api/admins/simple                                    otoroshi.controllers.adminapi.UsersController.registerSimpleAdmin()
GET     /api/admins/simple                                    otoroshi.controllers.adminapi.UsersController.simpleAdmins()
GET     /api/admins/simple/:username                          otoroshi.controllers.adminapi.UsersController.findAdmin(username)
PUT     /api/admins/simple/:username                          otoroshi.controllers.adminapi.UsersController.updateAdmin(username)
DELETE  /api/admins/simple/:username                          otoroshi.controllers.adminapi.UsersController.deleteAdmin(username)

GET     /api/admins/webauthn/_template                        otoroshi.controllers.adminapi.TemplatesController.initiateWebauthnAdmin()
GET     /api/admins/webauthn                                  otoroshi.controllers.adminapi.UsersController.webAuthnAdmins()
POST    /api/admins/webauthn                                  otoroshi.controllers.adminapi.UsersController.registerWebAuthnAdmin()
GET     /api/admins/webauthn/:username                        otoroshi.controllers.adminapi.UsersController.findWebAuthnAdmin(username)
PUT     /api/admins/webauthn/:username                        otoroshi.controllers.adminapi.UsersController.updateWebAuthnAdmin(username)
DELETE  /api/admins/webauthn/:username/:id                    otoroshi.controllers.adminapi.UsersController.webAuthnDeleteAdmin(username, id)

# GET     /api/swagger.json                                     otoroshi.controllers.SwaggerController.swagger()
# GET     /api/swagger/ui                                       otoroshi.controllers.SwaggerController.swaggerUi()
GET     /api/openapi.json                                     otoroshi.controllers.SwaggerController.openapi()
GET     /api/openapi/ui                                       otoroshi.controllers.SwaggerController.openapiUi()

## New admin API - cluster and node api
GET     /apis/cluster/node/infos                              otoroshi.controllers.adminapi.InfosApiController.infos()
GET     /apis/cluster/node/version                            otoroshi.controllers.adminapi.InfosApiController.version()
GET     /apis/cluster/node/health                             otoroshi.api.GenericApiController.health()
GET     /apis/cluster/node/metrics                            otoroshi.api.GenericApiController.metrics()
GET     /apis/cluster                                         otoroshi.controllers.adminapi.ClusterController.getClusterMembers()

# New admin API - generic apis
POST    /apis/:group/:version/:entity/_bulk                   otoroshi.api.GenericApiController.bulkCreate(group, version, entity)
PUT     /apis/:group/:version/:entity/_bulk                   otoroshi.api.GenericApiController.bulkUpdate(group, version, entity)
PATCH   /apis/:group/:version/:entity/_bulk                   otoroshi.api.GenericApiController.bulkPatch(group, version, entity)
DELETE  /apis/:group/:version/:entity/_bulk                   otoroshi.api.GenericApiController.bulkDelete(group, version, entity)
GET     /apis/:group/:version/:entity/_count                  otoroshi.api.GenericApiController.countAll(group, version, entity)
GET     /apis/:group/:version/:entity/_schema                 otoroshi.api.GenericApiController.schema(group, version, entity)
GET     /apis/:group/:version/:entity/_template               otoroshi.api.GenericApiController.template(group, version, entity)
GET     /apis/:group/:version/:entity/:id                     otoroshi.api.GenericApiController.findOne(group, version, entity, id)
POST    /apis/:group/:version/:entity/:id                     otoroshi.api.GenericApiController.upsert(group, version, entity, id)
PUT     /apis/:group/:version/:entity/:id                     otoroshi.api.GenericApiController.update(group, version, entity, id)
PATCH   /apis/:group/:version/:entity/:id                     otoroshi.api.GenericApiController.patch(group, version, entity, id)
DELETE  /apis/:group/:version/:entity/:id                     otoroshi.api.GenericApiController.delete(group, version, entity, id)
GET     /apis/:group/:version/:entity                         otoroshi.api.GenericApiController.findAll(group, version, entity)
POST    /apis/:group/:version/:entity                         otoroshi.api.GenericApiController.create(group, version, entity)
DELETE  /apis/:group/:version/:entity                         otoroshi.api.GenericApiController.deleteAll(group, version, entity)
GET     /apis/entities                                        otoroshi.api.GenericApiController.entities()
GET     /apis/openapi.json                                    otoroshi.api.GenericApiController.openapi()

########################################################################################################################

GET     /assets/*file                                         controllers.Assets.versioned(path="/public", file: Asset)
GET     /__otoroshi_assets/*file                              controllers.Assets.versioned(path="/public", file: Asset)
GET     /docs/*file                                           controllers.Assets.at(path="/public/docs", file)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy