2020-04-24 16:56:16 +02:00
openapi : 3.0 .1
info :
title : LemonLDAP::NG Manager API
2020-05-06 13:22:14 +02:00
description : The Manager API allows an administrator to modify the LemonLDAP::NG configuration programmatically. It is not meant to be accessed by end users. The client libraries mentionned in examples can be generated from doc/sources/manager-api/openapi-spec.yaml
2020-06-17 08:57:40 +02:00
version : 2.0 .9
2020-04-24 16:56:16 +02:00
servers :
2020-12-21 17:56:01 +01:00
- url : https://manager-api.example.com
2020-04-24 16:56:16 +02:00
tags :
- name : samlsp
description : SAML Service Providers
- name : oidcrp
description : OpenID Connect Relaying Parties
- name : 2fa
description : Registered Second Factors
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
paths :
2020-08-26 16:01:54 +02:00
/api/v1/status :
get :
summary : Check the status of the API
operationId : status
responses :
200 :
$ref : '#/components/responses/StatusResponse'
503 :
$ref : '#/components/responses/StatusResponse'
2020-04-24 16:56:16 +02:00
/api/v1/providers/saml/sp :
post :
tags :
- samlsp
summary : Create a new SAML Service provider
operationId : addsamlsp
requestBody :
description : SAML Service provider to add
content :
application/json :
schema :
$ref : '#/components/schemas/SamlSp'
required : true
responses :
201 :
$ref : '#/components/responses/Created'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
409 :
$ref : '#/components/responses/Conflict'
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
/api/v1/providers/saml/sp/findByConfKey :
get :
tags :
- samlsp
summary : Finds SAML Service providers by configuration key
description : Takes a search pattern to be tested against existing service providers
operationId : findSamlSpByConfKey
parameters :
- name : pattern
in : query
description : Search pattern
required : true
schema :
type : "string"
examples :
2020-06-17 08:57:40 +02:00
any :
2020-04-24 16:56:16 +02:00
summary : Any value
value : "*"
2020-06-17 08:57:40 +02:00
prefix :
2020-04-24 16:56:16 +02:00
summary : Given prefix
value : "zone1-*"
anywhere :
summary : Substring
value : "something"
responses :
200 :
$ref : '#/components/responses/ManySamlSp'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
/api/v1/providers/saml/sp/findByEntityId :
get :
tags :
- samlsp
summary : Finds SAML Service Provider by Entity ID
operationId : findSamlSpByEntityId
parameters :
- name : entityId
in : query
description : Entity ID to search
required : true
schema :
type : "string"
example : http://mysp.example.com/saml/metadata
responses :
200 :
$ref : '#/components/responses/OneSamlSp'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
/api/v1/providers/saml/sp/{confKey}:
get :
tags :
- samlsp
summary : Get SAML Service Provider by configuration key
description : Returns a single Service Provider
operationId : getSamlSpByConfKey
parameters :
- name : confKey
in : path
description : Configuration key of SAML Service Provider
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
200 :
$ref : '#/components/responses/OneSamlSp'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
put :
tags :
- samlsp
summary : Replaces a SAML Service
operationId : replaceSamlSp
parameters :
- name : confKey
in : path
description : Configuration key of SAML Service Provider that needs to be replaced
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
2020-10-14 14:18:17 +02:00
$ref : '#/components/schemas/SamlSpReplace'
2020-04-24 16:56:16 +02:00
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
patch :
tags :
- samlsp
summary : Updates a SAML Service.
operationId : updateSamlSp
parameters :
- name : confKey
in : path
description : Configuration key of SAML Service Provider that needs to be updated
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/SamlSpUpdate'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
delete :
tags :
- samlsp
summary : Deletes a SAML Service Provider
operationId : deleteSamlSp
parameters :
- name : confKey
in : path
description : Configuration key of SAML Service Provider to delete
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/NotFound'
2020-04-24 16:56:16 +02:00
/api/v1/providers/oidc/rp :
post :
tags :
- oidcrp
summary : Create a new OpenID Connect Relaying Party
operationId : addoidcrp
requestBody :
description : OpenID Connect Relaying Party to add
content :
application/json :
schema :
$ref : '#/components/schemas/OidcRp'
required : true
responses :
201 :
$ref : '#/components/responses/Created'
400 :
$ref : '#/components/responses/Error'
409 :
$ref : '#/components/responses/Conflict'
/api/v1/providers/oidc/rp/findByConfKey :
get :
tags :
- oidcrp
summary : Finds OpenID Connect Relaying Partys by configuration key
description : Takes a search pattern to be tested against existing service providers
operationId : findOidcRpByConfKey
parameters :
- name : pattern
in : query
description : Search pattern
required : true
schema :
$ref : '#/components/schemas/confKey'
examples :
2020-06-17 08:57:40 +02:00
any :
2020-04-24 16:56:16 +02:00
summary : Any value
value : "*"
2020-06-17 08:57:40 +02:00
prefix :
2020-04-24 16:56:16 +02:00
summary : Given prefix
value : "zone1-*"
anywhere :
summary : Substring
value : "something"
responses :
200 :
$ref : '#/components/responses/ManyOidcRp'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
/api/v1/providers/oidc/rp/findByClientId :
get :
tags :
- oidcrp
summary : Finds OpenID Connect Relaying Party by Client ID
operationId : findOidcRpByClientId
parameters :
- name : clientId
in : query
description : Client ID to search
required : true
schema :
type : "string"
example : my_client_id
responses :
200 :
$ref : '#/components/responses/OneOidcRp'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
/api/v1/providers/oidc/rp/{confKey}:
get :
tags :
- oidcrp
summary : Get OpenID Connect Relaying Party by configuration key
description : Returns a single Service Provider
operationId : getOidcRpByConfKey
parameters :
- name : confKey
in : path
description : Configuration key of OpenID Connect Relaying Party
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
200 :
$ref : '#/components/responses/OneOidcRp'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
patch :
tags :
- oidcrp
summary : Updates an OpenID Connect Relaying Party
operationId : updateOidcRp
parameters :
- name : confKey
in : path
description : Configuration key of OpenID Connect Relaying Party that needs to be updated
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/OidcRpUpdate'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
put :
tags :
- oidcrp
summary : Replaces an OpenID Connect Relaying Party
operationId : replaceOidcRp
parameters :
- name : confKey
in : path
description : Configuration key of OpenID Connect Relaying Party that needs to be replaced
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
2020-10-14 14:18:17 +02:00
$ref : '#/components/schemas/OidcRpReplace'
2020-04-24 16:56:16 +02:00
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
delete :
tags :
- oidcrp
summary : Deletes a OpenID Connect Relaying Party
operationId : deleteOidcRp
parameters :
- name : confKey
in : path
description : Configuration key of OpenID Connect Relaying Party to delete
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
/api/v1/providers/cas/app :
post :
tags :
- casapp
summary : Create a new CAS Application
operationId : addcasapp
requestBody :
description : CAS Application to add
content :
application/json :
schema :
$ref : '#/components/schemas/CasApp'
required : true
responses :
201 :
$ref : '#/components/responses/Created'
400 :
$ref : '#/components/responses/Error'
409 :
$ref : '#/components/responses/Conflict'
/api/v1/providers/cas/app/findByConfKey :
get :
tags :
- casapp
summary : Finds CAS applications by configuration key
description : Takes a search pattern to be tested against existing applications
operationId : findCasAppByConfKey
parameters :
- name : pattern
in : query
description : Search pattern
required : true
schema :
type : "string"
examples :
any :
summary : Any value
value : "*"
prefix :
summary : Given prefix
value : "zone1-*"
anywhere :
summary : Substring
value : "something"
responses :
200 :
$ref : '#/components/responses/ManyCasApp'
400 :
$ref : '#/components/responses/Error'
/api/v1/providers/cas/app/findByServiceUrl :
get :
tags :
- casapp
2020-06-18 09:18:10 +02:00
summary : Get CAS Application by Service URL
operationId : findCasAppByServiceUrl
2020-06-17 08:57:40 +02:00
parameters :
- name : serviceUrl
in : query
description : Service URL to search
required : true
schema :
type : "string"
example : http://mycasapp.example.com/
responses :
200 :
2020-06-17 20:55:32 +02:00
$ref : '#/components/responses/OneCasApp'
2020-06-17 08:57:40 +02:00
400 :
$ref : '#/components/responses/Error'
2020-06-18 09:18:10 +02:00
404 :
$ref : '#/components/responses/NotFound'
2020-06-17 08:57:40 +02:00
/api/v1/providers/cas/app/{confKey}:
get :
tags :
- casapp
summary : Get CAS Application by configuration key
description : Returns a single Application
operationId : getCasAppByConfKey
parameters :
- name : confKey
in : path
description : Configuration key of CAS Application
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
200 :
$ref : '#/components/responses/OneCasApp'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
put :
tags :
- casapp
summary : Replaces a CAS Application
operationId : replaceCasApp
parameters :
- name : confKey
in : path
description : Configuration key of CAS Application that needs to be replaced
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
2020-10-14 14:18:17 +02:00
$ref : '#/components/schemas/CasAppReplace'
2020-06-17 08:57:40 +02:00
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
patch :
tags :
- casapp
summary : Updates a CAS Application.
operationId : updateCasApp
parameters :
- name : confKey
in : path
description : Configuration key of CAS Application that needs to be updated
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/CasAppUpdate'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
2020-04-24 16:56:16 +02:00
404 :
2020-06-17 08:57:40 +02:00
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
delete :
tags :
- casapp
summary : Deletes a CAS Application
operationId : deleteCasApp
parameters :
- name : confKey
in : path
description : Configuration key of CAS Application to delete
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
2020-04-24 16:56:16 +02:00
'/api/v1/secondFactor/{uid}' :
description : Second factors for a particular user
parameters :
- name : uid
in : path
required : true
schema :
type : string
get :
summary : List second factors for a user
description : ''
tags :
- 2fa
operationId : getSecondFactors
responses :
200 :
$ref : '#/components/responses/SecondFactors'
404 :
$ref : '#/components/responses/NotFound'
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
delete :
summary : Delete all second factors for a user
description : ''
tags :
- 2fa
operationId : deleteSecondFactors
responses :
204 :
$ref : '#/components/responses/NoContent'
404 :
$ref : '#/components/responses/NotFound'
'/api/v1/secondFactor/{uid}/type/{type}' :
description : Second factors of a given type for a particular user
parameters :
- name : uid
in : path
required : true
schema :
type : string
- name : type
in : path
required : true
schema :
type : string
get :
summary : List second factors for a user given its type
description : ''
tags :
- 2fa
operationId : getSecondFactorsByType
responses :
200 :
$ref : '#/components/responses/SecondFactors'
404 :
$ref : '#/components/responses/NotFound'
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
delete :
2020-06-17 08:57:40 +02:00
summary : Delete all second factors of a given type for a user
2020-04-24 16:56:16 +02:00
description : ''
tags :
- 2fa
operationId : deleteSecondFactorsByType
responses :
204 :
$ref : '#/components/responses/NoContent'
404 :
$ref : '#/components/responses/NotFound'
'/api/v1/secondFactor/{uid}/id/{id}' :
description : Second factors of a given id for a particular user
parameters :
- name : uid
in : path
required : true
schema :
type : string
- name : id
in : path
required : true
schema :
type : string
get :
summary : Get second factors for a user given its ID
description : ''
tags :
- 2fa
operationId : getSecondFactorsById
responses :
200 :
$ref : '#/components/responses/SecondFactors'
404 :
$ref : '#/components/responses/NotFound'
delete :
2020-06-17 08:57:40 +02:00
summary : Delete a second factors for a user
2020-04-24 16:56:16 +02:00
description : ''
tags :
- 2fa
operationId : deleteSecondFactorsById
responses :
204 :
$ref : '#/components/responses/NoContent'
404 :
$ref : '#/components/responses/NotFound'
2020-06-24 16:58:10 +02:00
/api/v1/menu/cat :
post :
tags :
- menucat
summary : Create a new Menu Category
operationId : addMenuCat
requestBody :
description : Menu Category to add
content :
application/json :
schema :
$ref : '#/components/schemas/MenuCat'
required : true
responses :
201 :
$ref : '#/components/responses/Created'
400 :
$ref : '#/components/responses/Error'
409 :
$ref : '#/components/responses/Conflict'
/api/v1/menu/cat/findByConfKey :
get :
tags :
- menucat
summary : Finds Menu Categories by configuration key
description : Takes a search pattern to be tested against existing categories
operationId : findMenuCatByConfKey
parameters :
- name : pattern
in : query
description : Search pattern
required : true
schema :
type : "string"
examples :
any :
summary : Any value
value : "*"
prefix :
summary : Given prefix
value : "zone1-*"
anywhere :
summary : Substring
value : "something"
responses :
200 :
$ref : '#/components/responses/ManyMenuCat'
400 :
$ref : '#/components/responses/Error'
/api/v1/menu/cat/{confKey}:
get :
tags :
- menucat
summary : Get Menu Category by configuration key
description : Returns a single Category
operationId : getMenuCatByConfKey
parameters :
- name : confKey
in : path
description : Configuration key of Menu Category
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
200 :
$ref : '#/components/responses/OneMenuCat'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
put :
tags :
- menucat
summary : Replaces a Menu Category
operationId : replaceMenuCat
parameters :
- name : confKey
in : path
description : Configuration key of Menu Category that needs to be replaced
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/MenuCat'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
patch :
tags :
- menucat
summary : Updates a Menu Category
operationId : updateMenuCat
parameters :
- name : confKey
in : path
description : Configuration key of Menu Category that needs to be updated
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/MenuCatUpdate'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
delete :
tags :
- menucat
summary : Deletes a Menu Category
operationId : deleteMenuCat
parameters :
- name : confKey
in : path
description : Configuration key of Menu Category to delete
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
/api/v1/menu/app/{cat}:
get :
tags :
- menuapp
summary : Get Menu Applications within a Menu Category
description : Return existing applications within a menu category
operationId : getMenuApps
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
responses :
200 :
$ref : '#/components/responses/ManyMenuApp'
400 :
$ref : '#/components/responses/Error'
2020-06-26 09:30:22 +02:00
404 :
$ref : '#/components/responses/NotFound'
2020-06-24 16:58:10 +02:00
post :
tags :
- menuapp
summary : Create a new Menu Application within a Menu Category
operationId : addMenuApp
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
requestBody :
description : Menu Application to add
content :
application/json :
schema :
$ref : '#/components/schemas/MenuApp'
required : true
responses :
201 :
$ref : '#/components/responses/Created'
400 :
$ref : '#/components/responses/Error'
2020-06-26 12:03:16 +02:00
404 :
$ref : '#/components/responses/NotFound'
2020-06-24 16:58:10 +02:00
409 :
$ref : '#/components/responses/Conflict'
/api/v1/menu/app/{cat}/findByConfKey:
get :
tags :
- menuapp
summary : Finds Menu Applications by configuration key within a Menu Category
description : Takes a search pattern to be tested against existing applications within a menu category
operationId : findMenuAppByConfKey
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
- name : pattern
in : query
description : Search pattern
required : true
schema :
type : "string"
examples :
any :
summary : Any value
value : "*"
prefix :
summary : Given prefix
value : "zone1-*"
anywhere :
summary : Substring
value : "something"
responses :
200 :
$ref : '#/components/responses/ManyMenuApp'
400 :
$ref : '#/components/responses/Error'
/api/v1/menu/app/{cat}/{confKey}:
get :
tags :
- menuapp
summary : Get Menu Application within a Menu Category by configuration key
description : Returns a single application
operationId : getMenuAppByConfKey
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
- name : confKey
in : path
description : Configuration key of Menu Application
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
200 :
$ref : '#/components/responses/OneMenuApp'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
put :
tags :
- menuapp
summary : Replaces a Menu Application
operationId : replaceMenuApp
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
- name : confKey
in : path
description : Configuration key of Menu Application that needs to be replaced
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/MenuApp'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
patch :
tags :
- menuapp
summary : Updates a Menu Application
operationId : updateMenuApp
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
- name : confKey
in : path
description : Configuration key of Menu Application that needs to be updated
required : true
schema :
$ref : '#/components/schemas/confKey'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/MenuAppUpdate'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
409 :
$ref : '#/components/responses/Conflict'
delete :
tags :
- menuapp
summary : Deletes a Menu Application
operationId : deleteMenuApp
parameters :
- name : cat
in : path
description : Configuration key of Menu Category to work with
required : true
schema :
$ref : '#/components/schemas/menuCatConfKey'
- name : confKey
in : path
description : Configuration key of Menu Application to delete
required : true
schema :
$ref : '#/components/schemas/confKey'
responses :
204 :
$ref : '#/components/responses/NoContent'
400 :
$ref : '#/components/responses/Error'
404 :
$ref : '#/components/responses/NotFound'
2020-04-24 16:56:16 +02:00
components :
schemas :
2020-08-26 16:01:54 +02:00
Status :
type : object
properties :
name :
type : string
description : Descriptive name of the software
version :
type : string
description : Version of the LemonLDAP::NG software
status_sessions :
type : string
description : Status of the sessions database
enum :
- ok
- ko
- unknown
status_psessions :
type : string
description : Status of the psessions database
enum :
- ok
- ko
- unknown
status_config :
type : string
description : Status of the configuration database
enum :
- ok
- ko
status :
type : string
description : Global status
enum :
- ok
- ko
2020-04-24 16:56:16 +02:00
confKey :
type : string
pattern : '^\w[\w\.\-]*$'
Error :
type : object
properties :
error :
type : string
required :
- error
SamlSp :
required :
- confKey
- metadata
type : object
properties :
confKey :
$ref : '#/components/schemas/confKey'
metadata :
type : string
example : '<?xml version="1.0"?><EntityDescriptor...'
exportedAttributes :
type : object
items :
$ref : '#/components/schemas/samlAttribute'
macros :
type : object
example :
myMacroName : "$macro(rule)"
options :
$ref : '#/components/schemas/samlOptions'
SamlSpUpdate :
type : object
properties :
metadata :
type : string
example : '<?xml version="1.0"?><EntityDescriptor...'
macros :
type : object
example :
myMacroName : "$macro(rule)"
exportedAttributes :
type : object
items :
$ref : '#/components/schemas/samlAttribute'
options :
$ref : '#/components/schemas/samlOptions'
2020-10-14 14:18:17 +02:00
SamlSpReplace :
type : object
required :
- metadata
properties :
metadata :
type : string
example : '<?xml version="1.0"?><EntityDescriptor...'
macros :
type : object
example :
myMacroName : "$macro(rule)"
exportedAttributes :
type : object
items :
$ref : '#/components/schemas/samlAttribute'
options :
$ref : '#/components/schemas/samlOptions'
2020-04-24 16:56:16 +02:00
samlOptions :
type : object
properties :
checkSSOMessageSignature :
type : boolean
default : 1
sessionNotOnOrAfterTimeout :
type : integer
default : 72000
signSLOMessage :
type : integer
minimum : -1
maximum : 1
default : -1
enableIDPInitiatedURL :
type : boolean
oneTimeUse :
type : boolean
checkSLOMessageSignature :
type : boolean
default : 1
encryptionMode :
type : string
2020-06-17 08:57:40 +02:00
enum :
2020-04-24 16:56:16 +02:00
- none
- nameid
- assertion
default : none
notOnOrAfterTimeout :
type : integer
default : 72000
2020-06-11 19:04:16 +02:00
authnLevel :
type : integer
2020-04-24 16:56:16 +02:00
rule :
type : string
forceUTF8 :
type : boolean
default : 1
signSSOMessage :
type : integer
minimum : -1
maximum : 1
default : -1
nameIDSessionKey :
type : string
nameIDFormat :
type : string
2020-06-17 08:57:40 +02:00
enum :
2020-04-24 16:56:16 +02:00
- unspecified
- email
- x509
- windows
- kerberos
- entity
- persistent
- transient
- encrypted
samlAttribute :
type : object
properties :
2020-07-29 16:15:42 +02:00
name :
type : string
2020-04-24 16:56:16 +02:00
mandatory :
type : boolean
friendlyName :
type : string
format :
type : string
example : 'urn:oasis:names:tc:SAML:2.0:attrname-format:basic'
2020-06-17 08:57:40 +02:00
2020-04-24 16:56:16 +02:00
OidcRp :
required :
- confKey
- clientId
- redirectUris
type : object
properties :
confKey :
$ref : '#/components/schemas/confKey'
clientId :
type : string
redirectUris :
type : array
items :
type : string
minItems : 1
format : "uri"
exportedVars :
type : object
example :
email : mail
family_name : sn
name : cn
extraClaims :
type : object
example :
myscope : "myattr1 myattr2 myattr3"
macros :
type : object
example :
myMacroName : "$macro(rule)"
options :
$ref : '#/components/schemas/OidcOptions'
2021-01-28 17:29:26 +01:00
scopeRules :
type : object
example :
write : "requested and inGroup('writers')"
2020-04-24 16:56:16 +02:00
OidcOptions :
type : object
properties :
logoutUrl :
type : string
format : url
clientSecret :
type : string
format : password
displayName :
type : string
allowOffline :
type : boolean
2021-01-28 17:26:18 +01:00
accessTokenSignAlg :
type : string
enum :
- none
- RS256
- RS384
- RS512
default : HS512
2021-06-17 18:55:35 +02:00
userInfoSignAlg :
type : string
enum :
- ""
- none
- HS256
- HS384
- HS512
- RS256
- RS384
- RS512
default : ""
2021-01-28 17:26:18 +01:00
accessTokenJWT :
type : bool
accessTokenClaims :
type : bool
2020-06-11 19:04:16 +02:00
authnLevel :
type : integer
2020-04-24 16:56:16 +02:00
rule :
type : string
IDTokenSignAlg :
type : string
2020-06-17 08:57:40 +02:00
enum :
2020-04-24 16:56:16 +02:00
- none
- HS256
- HS384
- HS512
- RS256
- RS384
- RS512
default : HS512
refreshToken :
type : boolean
public :
type : boolean
postLogoutRedirectUris :
2020-12-28 15:13:16 +01:00
type : array
items :
type : string
2020-04-24 16:56:16 +02:00
logoutType :
type : string
2020-06-17 08:57:40 +02:00
enum :
2020-04-24 16:56:16 +02:00
- front
- back
default : front
accessTokenExpiration :
type : integer
IDTokenForceClaims :
type : boolean
2021-02-03 09:43:17 +01:00
additionalAudiences :
type : array
items :
type : string
2020-04-24 16:56:16 +02:00
requirePKCE :
type : boolean
offlineSessionExpiration :
type : integer
redirectUris :
type : array
items :
type : string
bypassConsent :
type : boolean
logoutSessionRequired :
type : boolean
clientId :
type : string
IDTokenExpiration :
type : integer
authorizationCodeExpiration :
type : integer
icon :
type : string
userIDAttr :
type : string
OidcRpUpdate :
type : object
properties :
clientId :
type : string
exportedVars :
type : object
example :
email : mail
family_name : sn
name : cn
extraClaims :
type : object
example :
myscope : "myattr1 myattr2 myattr3"
macros :
type : object
example :
myMacroName : "$macro(rule)"
options :
$ref : '#/components/schemas/OidcOptions'
2021-01-28 17:29:26 +01:00
scopeRules :
type : object
example :
write : "requested and inGroup('writers')"
2020-10-14 14:18:17 +02:00
OidcRpReplace :
type : object
required :
- clientId
- redirectUris
properties :
clientId :
type : string
exportedVars :
type : object
example :
email : mail
family_name : sn
name : cn
extraClaims :
type : object
example :
myscope : "myattr1 myattr2 myattr3"
macros :
type : object
example :
myMacroName : "$macro(rule)"
options :
$ref : '#/components/schemas/OidcOptions'
2021-01-28 17:29:26 +01:00
scopeRules :
type : object
example :
write : "requested and inGroup('writers')"
2020-06-17 08:57:40 +02:00
CasApp :
required :
- confKey
type : object
properties :
confKey :
$ref : '#/components/schemas/confKey'
exportedVars :
type : object
default :
cn : cn
mail : mail
uid : uid
macros :
type : object
example :
myMacroName : "$macro(rule)"
options :
$ref : '#/components/schemas/casOptions'
CasAppUpdate :
type : object
properties :
macros :
type : object
example :
myMacroName : "$macro(rule)"
2020-10-14 14:18:17 +02:00
exportedVars :
type : object
default :
cn : cn
mail : mail
uid : uid
options :
$ref : '#/components/schemas/casOptions'
CasAppReplace :
type : object
properties :
macros :
type : object
example :
myMacroName : "$macro(rule)"
2020-06-17 08:57:40 +02:00
exportedVars :
type : object
default :
cn : cn
mail : mail
uid : uid
options :
$ref : '#/components/schemas/casOptions'
casOptions :
2020-06-18 09:18:10 +02:00
required :
- service
2020-06-17 08:57:40 +02:00
type : object
properties :
service :
2022-01-23 18:04:08 +01:00
type : array
2020-06-17 08:57:40 +02:00
userAttribute :
type : string
default : none
rule :
type : string
default : none
2020-04-24 16:56:16 +02:00
SecondFactor :
type : object
required :
- type
- id
properties :
id :
type : string
description : "An opaque idenfifier for this particular token"
type :
type : string
description : "The type of token in use"
2022-02-11 18:25:24 +01:00
example : "TOTP, U2F, UBK (Yubikey), WebAuthn"
2020-04-24 16:56:16 +02:00
name :
type : string
description : "A user-set description of the token"
SecondFactors :
type : array
items :
$ref : "#/components/schemas/SecondFactor"
2020-06-24 16:58:10 +02:00
menuCatConfKey :
type : string
pattern : '^\w[\w\.\-]*$'
MenuCat :
required :
- confKey
- catname
type : object
properties :
confKey :
$ref : '#/components/schemas/confKey'
catname :
type : string
order :
type : integer
MenuCatUpdate :
type : object
properties :
catname :
type : string
order :
type : integer
MenuApp :
required :
- confKey
type : object
properties :
confKey :
$ref : '#/components/schemas/confKey'
order :
type : integer
options :
$ref : '#/components/schemas/MenuAppOptions'
MenuAppOptions :
required :
- name
type : object
properties :
name :
type : string
tooltip :
type : string
description :
type : string
uri :
type : string
logo :
type : string
default : network.png
enum :
- attach.png
- bell.png
- bookmark.png
- configure.png
- database.png
- demo.png
- folder.png
- gear.png
- help.png
- llng.png
- mailappt.png
- money.png
- network.png
- terminal.png
- thumbnail.png
- tux.png
- web.png
- (Any reference to an available image in app logo folder)
display :
type : string
default : auto
enum :
2020-06-26 14:28:06 +02:00
- 'on'
- 'off'
2020-06-24 16:58:10 +02:00
- auto
- (Any special rule to apply for example "$uid eq 'dwho'")
MenuAppUpdate :
type : object
properties :
order :
type : integer
options :
$ref : '#/components/schemas/MenuAppOptions'
2020-04-24 16:56:16 +02:00
responses :
2020-08-26 16:01:54 +02:00
StatusResponse :
description : Response to API health check
content :
application/json :
schema :
$ref : '#/components/schemas/Status'
2020-04-24 16:56:16 +02:00
NoContent :
description : Successful modification
Created :
description : Successful creation
OneOidcRp :
description : Return an OpenID Connect Provider
content :
application/json :
schema :
$ref : '#/components/schemas/OidcRp'
OneSamlSp :
description : Return a SAML Provider
content :
application/json :
schema :
$ref : '#/components/schemas/SamlSp'
2020-06-17 08:57:40 +02:00
OneCasApp :
description : Return a CAS Provider
content :
application/json :
schema :
$ref : '#/components/schemas/CasApp'
2020-04-24 16:56:16 +02:00
ManyOidcRp :
description : Return a list of OpenID Connect Providers
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/OidcRp'
ManySamlSp :
description : Return a list of SAML Providers
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/SamlSp'
2020-06-17 08:57:40 +02:00
ManyCasApp :
description : Return a list of CAS Providers
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/CasApp'
2020-04-24 16:56:16 +02:00
NotFound :
description : The specified resource was not found
content :
application/json :
schema :
$ref : '#/components/schemas/Error'
Conflict :
description : The specified object could not be created because its configuration key, client_id or entityID already exists
content :
application/json :
schema :
$ref : '#/components/schemas/Error'
Error :
description : An error was encountered when processing the request
content :
application/json :
schema :
$ref : '#/components/schemas/Error'
SecondFactor :
description : Return a second factor
content :
application/json :
schema :
$ref : "#/components/schemas/SecondFactor"
SecondFactors :
description : Return a list of second factors
content :
application/json :
schema :
$ref : "#/components/schemas/SecondFactors"
2020-06-24 16:58:10 +02:00
OneMenuCat :
description : Return a Menu Category
content :
application/json :
schema :
$ref : '#/components/schemas/MenuCat'
ManyMenuCat :
description : Return a list of Menu Categories
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/MenuCat'
OneMenuApp :
description : Return a Menu Application
content :
application/json :
schema :
$ref : '#/components/schemas/MenuApp'
ManyMenuApp :
description : Return a list of Menu Applications
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/MenuApp'